Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl')
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AbstractionImpl.java420
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptCallActionImpl.java528
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AcceptEventActionImpl.java676
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionExecutionSpecificationImpl.java352
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionImpl.java663
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActionInputPinImpl.java614
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityEdgeImpl.java1164
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityFinalNodeImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityGroupImpl.java522
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityImpl.java1550
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityNodeImpl.java783
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityParameterNodeImpl.java502
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActivityPartitionImpl.java1137
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ActorImpl.java75
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddStructuralFeatureValueActionImpl.java735
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AddVariableValueActionImpl.java670
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AnyReceiveEventImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ArtifactImpl.java1127
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationClassImpl.java1421
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/AssociationImpl.java1142
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorExecutionSpecificationImpl.java337
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehaviorImpl.java1368
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioralFeatureImpl.java1108
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BehavioredClassifierImpl.java1008
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/BroadcastSignalActionImpl.java473
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallActionImpl.java651
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallBehaviorActionImpl.java550
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallEventImpl.java287
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CallOperationActionImpl.java756
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CentralBufferNodeImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ChangeEventImpl.java385
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassImpl.java1637
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierImpl.java2332
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClassifierTemplateParameterImpl.java522
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClauseImpl.java478
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearAssociationActionImpl.java638
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearStructuralFeatureActionImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ClearVariableActionImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationImpl.java1058
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CollaborationUseImpl.java436
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CombinedFragmentImpl.java573
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommentImpl.java245
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CommunicationPathImpl.java68
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentImpl.java1212
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ComponentRealizationImpl.java651
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConditionalNodeImpl.java890
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementImpl.java612
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectableElementTemplateParameterImpl.java230
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectionPointReferenceImpl.java536
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorEndImpl.java502
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConnectorImpl.java685
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConsiderIgnoreFragmentImpl.java352
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ConstraintImpl.java619
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ContinuationImpl.java359
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlFlowImpl.java67
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ControlNodeImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkActionImpl.java284
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateLinkObjectActionImpl.java604
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreateObjectActionImpl.java644
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/CreationEventImpl.java68
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataStoreNodeImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DataTypeImpl.java870
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DecisionNodeImpl.java408
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DependencyImpl.java548
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeployedArtifactImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentImpl.java676
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentSpecificationImpl.java969
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeploymentTargetImpl.java409
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyLinkActionImpl.java268
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestroyObjectActionImpl.java709
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DestructionEventImpl.java68
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DeviceImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DirectedRelationshipImpl.java193
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationConstraintImpl.java250
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationImpl.java360
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationIntervalImpl.java277
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/DurationObservationActionImpl.java542
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImpl.java389
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ElementImportImpl.java610
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EncapsulatedClassifierImpl.java653
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationImpl.java764
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EnumerationLiteralImpl.java482
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/EventImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExceptionHandlerImpl.java512
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutableNodeImpl.java486
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEnvironmentImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionEventImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionOccurrenceSpecificationImpl.java410
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExecutionSpecificationImpl.java386
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionNodeImpl.java693
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpansionRegionImpl.java827
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExpressionImpl.java443
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtendImpl.java743
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionEndImpl.java435
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionImpl.java444
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ExtensionPointImpl.java373
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FeatureImpl.java346
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalNodeImpl.java68
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FinalStateImpl.java122
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FlowFinalNodeImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ForkNodeImpl.java77
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/FunctionBehaviorImpl.java79
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GateImpl.java79
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralOrderingImpl.java463
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationImpl.java571
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/GeneralizationSetImpl.java613
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ImageImpl.java76
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IncludeImpl.java549
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationFlowImpl.java713
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InformationItemImpl.java554
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InitialNodeImpl.java78
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InputPinImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceSpecificationImpl.java935
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InstanceValueImpl.java300
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionConstraintImpl.java577
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionFragmentImpl.java585
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionImpl.java1708
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionOperandImpl.java907
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InteractionUseImpl.java565
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceImpl.java1163
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterfaceRealizationImpl.java636
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InterruptibleActivityRegionImpl.java381
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalConstraintImpl.java250
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/IntervalImpl.java355
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/InvocationActionImpl.java597
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/JoinNodeImpl.java581
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LifelineImpl.java698
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkActionImpl.java618
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndCreationDataImpl.java343
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDataImpl.java387
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LinkEndDestructionDataImpl.java343
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralBooleanImpl.java332
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralIntegerImpl.java327
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralNullImpl.java71
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralSpecificationImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralStringImpl.java332
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LiteralUnlimitedNaturalImpl.java327
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/LoopNodeImpl.java1193
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ManifestationImpl.java394
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MergeNodeImpl.java77
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEndImpl.java263
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageEventImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageImpl.java854
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MessageOccurrenceSpecificationImpl.java443
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ModelImpl.java439
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/MultiplicityElementImpl.java706
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamedElementImpl.java668
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NamespaceImpl.java657
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/NodeImpl.java1142
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectFlowImpl.java683
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ObjectNodeImpl.java863
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OccurrenceSpecificationImpl.java545
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueActionImpl.java582
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueBehaviorImpl.java781
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OpaqueExpressionImpl.java499
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationImpl.java2030
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OperationTemplateParameterImpl.java227
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/OutputPinImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImpl.java1327
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageImportImpl.java518
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageMergeImpl.java426
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PackageableElementImpl.java614
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterImpl.java1459
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterSetImpl.java449
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ParameterableElementImpl.java446
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PartDecompositionImpl.java89
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PinImpl.java470
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PortImpl.java955
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PrimitiveTypeImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileApplicationImpl.java385
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProfileImpl.java701
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PropertyImpl.java2384
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolConformanceImpl.java429
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolStateMachineImpl.java1117
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ProtocolTransitionImpl.java687
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/PseudostateImpl.java679
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/QualifierValueImpl.java300
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RaiseExceptionActionImpl.java549
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadExtentActionImpl.java623
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadIsClassifiedObjectActionImpl.java861
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkActionImpl.java621
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndActionImpl.java809
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadLinkObjectEndQualifierActionImpl.java840
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadSelfActionImpl.java578
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadStructuralFeatureActionImpl.java593
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReadVariableActionImpl.java574
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RealizationImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReceptionImpl.java432
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReclassifyObjectActionImpl.java751
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableElementImpl.java427
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RedefinableTemplateSignatureImpl.java800
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RegionImpl.java1052
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RelationshipImpl.java131
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveStructuralFeatureValueActionImpl.java738
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/RemoveVariableValueActionImpl.java671
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ReplyActionImpl.java713
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendObjectActionImpl.java701
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendOperationEventImpl.java288
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalActionImpl.java662
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SendSignalEventImpl.java286
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SequenceNodeImpl.java648
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalEventImpl.java284
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SignalImpl.java676
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SlotImpl.java448
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StartClassifierBehaviorActionImpl.java579
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateImpl.java1894
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateInvariantImpl.java469
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StateMachineImpl.java1271
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StereotypeImpl.java681
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StringExpressionImpl.java838
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureActionImpl.java673
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuralFeatureImpl.java1004
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredActivityNodeImpl.java1595
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/StructuredClassifierImpl.java901
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/SubstitutionImpl.java618
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateBindingImpl.java538
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterImpl.java727
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateParameterSubstitutionImpl.java496
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateSignatureImpl.java439
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TemplateableElementImpl.java426
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TestIdentityActionImpl.java793
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeConstraintImpl.java247
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeEventImpl.java470
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeExpressionImpl.java375
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeIntervalImpl.java277
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TimeObservationActionImpl.java538
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TransitionImpl.java1174
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TriggerImpl.java308
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypeImpl.java288
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/TypedElementImpl.java261
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLFactoryImpl.java3099
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UMLPackageImpl.java10618
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UnmarshallActionImpl.java763
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UsageImpl.java51
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/UseCaseImpl.java1039
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValuePinImpl.java545
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationActionImpl.java654
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/ValueSpecificationImpl.java386
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableActionImpl.java437
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VariableImpl.java1050
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/VertexImpl.java476
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteLinkActionImpl.java67
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteStructuralFeatureActionImpl.java606
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/WriteVariableActionImpl.java584
-rw-r--r--plugins/org.eclipse.uml2.uml/src/org/eclipse/uml2/uml/internal/impl/uml.ecore9574
245 files changed, 161244 insertions, 0 deletions
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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Abstraction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AbstractionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AbstractionImpl#getMapping <em>Mapping</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AbstractionImpl
+ extends DependencyImpl
+ implements Abstraction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AbstractionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAbstraction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OpaqueExpression getMapping() {
+ OpaqueExpression mapping = (OpaqueExpression) eVirtualGet(UMLPackage.ABSTRACTION__MAPPING);
+ return mapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OpaqueExpression createMapping() {
+ OpaqueExpression newMapping = UMLFactory.eINSTANCE
+ .createOpaqueExpression();
+ setMapping(newMapping);
+ return newMapping;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Accept Call Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AcceptCallActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AcceptCallActionImpl#getReturnInformation <em>Return Information</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AcceptCallActionImpl
+ extends AcceptEventActionImpl
+ implements AcceptCallAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AcceptCallActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAcceptCallAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin basicGetReturnInformation() {
+ return (OutputPin) eVirtualGet(UMLPackage.ACCEPT_CALL_ACTION__RETURN_INFORMATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultPins(DiagnosticChain diagnostics, Map context) {
+ return AcceptCallActionOperations.validateResultPins(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTriggerCallEvent(DiagnosticChain diagnostics,
+ Map context) {
+ return AcceptCallActionOperations.validateTriggerCallEvent(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIsUnmarshall(DiagnosticChain diagnostics, Map context) {
+ return AcceptCallActionOperations.validateIsUnmarshall(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Accept Event Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#isUnmarshall <em>Is Unmarshall</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#getResults <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AcceptEventActionImpl#getTriggers <em>Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AcceptEventActionImpl
+ extends ActionImpl
+ implements AcceptEventAction {
+
+ /**
+ * The default value of the '{@link #isUnmarshall() <em>Is Unmarshall</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnmarshall()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNMARSHALL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isUnmarshall() <em>Is Unmarshall</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnmarshall()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_UNMARSHALL_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AcceptEventActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAcceptEventAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnmarshall() {
+ return (eFlags & IS_UNMARSHALL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createTrigger() {
+ Trigger newTrigger = UMLFactory.eINSTANCE.createTrigger();
+ getTriggers().add(newTrigger);
+ return newTrigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoInputPins(DiagnosticChain diagnostics, Map context) {
+ return AcceptEventActionOperations.validateNoInputPins(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoOutputPins(DiagnosticChain diagnostics, Map context) {
+ return AcceptEventActionOperations.validateNoOutputPins(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTriggerEvents(DiagnosticChain diagnostics,
+ Map context) {
+ return AcceptEventActionOperations.validateTriggerEvents(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIsUnmarshall(DiagnosticChain diagnostics, Map context) {
+ return AcceptEventActionOperations.validateIsUnmarshall(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Execution Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionExecutionSpecificationImpl#getAction <em>Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionExecutionSpecificationImpl
+ extends ExecutionSpecificationImpl
+ implements ActionExecutionSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActionExecutionSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActionExecutionSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action basicGetAction() {
+ return (Action) eVirtualGet(UMLPackage.ACTION_EXECUTION_SPECIFICATION__ACTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateActionReferenced(DiagnosticChain diagnostics,
+ Map context) {
+ return ActionExecutionSpecificationOperations.validateActionReferenced(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getLocalPreconditions <em>Local Precondition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionImpl#getLocalPostconditions <em>Local Postcondition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionImpl
+ extends ExecutableNodeImpl
+ implements Action {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createLocalPrecondition(EClass eClass) {
+ Constraint newLocalPrecondition = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getLocalPreconditions().add(newLocalPrecondition);
+ return newLocalPrecondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createLocalPrecondition() {
+ Constraint newLocalPrecondition = UMLFactory.eINSTANCE
+ .createConstraint();
+ getLocalPreconditions().add(newLocalPrecondition);
+ return newLocalPrecondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createLocalPostcondition(EClass eClass) {
+ Constraint newLocalPostcondition = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getLocalPostconditions().add(newLocalPostcondition);
+ return newLocalPostcondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createLocalPostcondition() {
+ Constraint newLocalPostcondition = UMLFactory.eINSTANCE
+ .createConstraint();
+ getLocalPostconditions().add(newLocalPostcondition);
+ return newLocalPostcondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOutputs() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements() || isSetOutputs() || isSetInputs()
+ || eIsSet(UMLPackage.eINSTANCE.getAction_LocalPrecondition())
+ || eIsSet(UMLPackage.eINSTANCE.getAction_LocalPostcondition());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Action Input Pin</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionInputPinImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActionInputPinImpl#getFromAction <em>From Action</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActionInputPinImpl
+ extends InputPinImpl
+ implements ActionInputPin {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActionInputPinImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActionInputPin();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action getFromAction() {
+ Action fromAction = (Action) eVirtualGet(UMLPackage.ACTION_INPUT_PIN__FROM_ACTION);
+ return fromAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createFromAction(EClass eClass) {
+ Action newFromAction = (Action) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setFromAction(newFromAction);
+ return newFromAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createFromAction() {
+ Action newFromAction = UMLFactory.eINSTANCE.createAction();
+ setFromAction(newFromAction);
+ return newFromAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneOutputPin(DiagnosticChain diagnostics, Map context) {
+ return ActionInputPinOperations.validateOneOutputPin(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputPin(DiagnosticChain diagnostics, Map context) {
+ return ActionInputPinOperations.validateInputPin(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoControlOrDataFlow(DiagnosticChain diagnostics,
+ Map context) {
+ return ActionInputPinOperations.validateNoControlOrDataFlow(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Edge</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInGroups <em>In Group</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getActivity <em>Activity</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInPartitions <em>In Partition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInStructuredNode <em>In Structured Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getRedefinedEdges <em>Redefined Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getGuard <em>Guard</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getWeight <em>Weight</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getInterrupts <em>Interrupts</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityEdgeImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActivityEdgeImpl
+ extends RedefinableElementImpl
+ implements ActivityEdge {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityEdgeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActivityEdge();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity getActivity() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_EDGE__ACTIVITY)
+ return null;
+ return (Activity) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructuredActivityNode getInStructuredNode() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_EDGE__IN_STRUCTURED_NODE)
+ return null;
+ return (StructuredActivityNode) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityNode basicGetTarget() {
+ return (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__TARGET);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getGuard() {
+ ValueSpecification guard = (ValueSpecification) eVirtualGet(UMLPackage.ACTIVITY_EDGE__GUARD);
+ return guard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createGuard(EClass eClass) {
+ ValueSpecification newGuard = (ValueSpecification) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setGuard(newGuard);
+ return newGuard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getWeight() {
+ ValueSpecification weight = (ValueSpecification) eVirtualGet(UMLPackage.ACTIVITY_EDGE__WEIGHT);
+ return weight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createWeight(EClass eClass) {
+ ValueSpecification newWeight = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setWeight(newWeight);
+ return newWeight;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterruptibleActivityRegion basicGetInterrupts() {
+ return (InterruptibleActivityRegion) eVirtualGet(UMLPackage.ACTIVITY_EDGE__INTERRUPTS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityNode basicGetSource() {
+ return (ActivityNode) eVirtualGet(UMLPackage.ACTIVITY_EDGE__SOURCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSourceAndTarget(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityEdgeOperations.validateSourceAndTarget(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwned(DiagnosticChain diagnostics, Map context) {
+ return ActivityEdgeOperations.validateOwned(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStructuredNode(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityEdgeOperations.validateStructuredNode(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Activity activity = getActivity();
+ if (activity != null) {
+ return activity;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_Activity());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInGroups() {
+ return eIsSet(UMLPackage.eINSTANCE.getActivityEdge_InPartition())
+ || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_InStructuredNode());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return super.isSetRedefinedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getActivityEdge_RedefinedEdge());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Final Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ActivityFinalNodeImpl
+ extends FinalNodeImpl
+ implements ActivityFinalNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityFinalNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Group</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getSubgroups <em>Subgroup</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedNodes <em>Contained Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getContainedEdges <em>Contained Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityGroupImpl#getInActivity <em>In Activity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ActivityGroupImpl
+ extends ElementImpl
+ implements ActivityGroup {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityGroupImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActivityGroup();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity getInActivity() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_GROUP__IN_ACTIVITY)
+ return null;
+ return (Activity) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNodesAndEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityGroupOperations.validateNodesAndEdges(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotContained(DiagnosticChain diagnostics, Map context) {
+ return ActivityGroupOperations.validateNotContained(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGroupOwned(DiagnosticChain diagnostics, Map context) {
+ return ActivityGroupOperations.validateGroupOwned(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubgroups() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements() || isSetSubgroups();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup basicGetSuperGroup() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup getSuperGroup() {
+ ActivityGroup superGroup = basicGetSuperGroup();
+ return superGroup == null
+ ? null
+ : (ActivityGroup) eResolveProxy((InternalEObject) superGroup);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSuperGroup() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ if (isSetSuperGroup()) {
+ return basicGetSuperGroup();
+ }
+ Activity inActivity = getInActivity();
+ if (inActivity != null) {
+ return inActivity;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner() || isSetSuperGroup()
+ || eIsSet(UMLPackage.eINSTANCE.getActivityGroup_InActivity());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetContainedNodes() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getGroups <em>Group</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getNodes <em>Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#isReadOnly <em>Is Read Only</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getPartition <em>Partition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#isSingleExecution <em>Is Single Execution</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getStructuredNodes <em>Structured Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getVariables <em>Variable</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityImpl#getEdges <em>Edge</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActivityImpl
+ extends BehaviorImpl
+ implements Activity {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits2 = 0;
+
+ /**
+ * The default value of the '{@link #isReadOnly() <em>Is Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_READ_ONLY_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReadOnly() <em>Is Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_READ_ONLY_EFLAG = 1 << 12;
+
+ /**
+ * The default value of the '{@link #isSingleExecution() <em>Is Single Execution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSingleExecution()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SINGLE_EXECUTION_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isSingleExecution() <em>Is Single Execution</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSingleExecution()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_SINGLE_EXECUTION_EFLAG = 1 << 13;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActivity();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup createGroup(EClass eClass) {
+ ActivityGroup newGroup = (ActivityGroup) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getGroups().add(newGroup);
+ return newGroup;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityNode createNode(EClass eClass) {
+ ActivityNode newNode = (ActivityNode) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getNodes().add(newNode);
+ return newNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReadOnly() {
+ return (eFlags & IS_READ_ONLY_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityPartition getPartition() {
+ ActivityPartition partition = (ActivityPartition) eVirtualGet(UMLPackage.ACTIVITY__PARTITION);
+ return partition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSingleExecution() {
+ return (eFlags & IS_SINGLE_EXECUTION_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable createVariable() {
+ Variable newVariable = UMLFactory.eINSTANCE.createVariable();
+ getVariables().add(newVariable);
+ return newVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityEdge createEdge(EClass eClass) {
+ ActivityEdge newEdge = (ActivityEdge) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getEdges().add(newEdge);
+ return newEdge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityEdge createEdge() {
+ ActivityEdge newEdge = UMLFactory.eINSTANCE.createActivityEdge();
+ getEdges().add(newEdge);
+ return newEdge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoSupergroups(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityOperations.validateNoSupergroups(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateActivityParameterNode(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityOperations.validateActivityParameterNode(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAutonomous(DiagnosticChain diagnostics, Map context) {
+ return ActivityOperations
+ .validateAutonomous(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ case 2 :
+ return eVirtualIndexBits2;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getActivity_Group())
+ || eIsSet(UMLPackage.eINSTANCE.getActivity_Node())
+ || eIsSet(UMLPackage.eINSTANCE.getActivity_Edge());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInGroups <em>In Group</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getOutgoings <em>Outgoing</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInPartitions <em>In Partition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInStructuredNode <em>In Structured Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getActivity <em>Activity</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getIncomings <em>Incoming</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getInInterruptibleRegions <em>In Interruptible Region</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityNodeImpl#getRedefinedNodes <em>Redefined Node</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ActivityNodeImpl
+ extends RedefinableElementImpl
+ implements ActivityNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActivityNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructuredActivityNode getInStructuredNode() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_NODE__IN_STRUCTURED_NODE)
+ return null;
+ return (StructuredActivityNode) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity getActivity() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_NODE__ACTIVITY)
+ return null;
+ return (Activity) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwned(DiagnosticChain diagnostics, Map context) {
+ return ActivityNodeOperations.validateOwned(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwnedStructuredNode(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityNodeOperations.validateOwnedStructuredNode(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInGroups() {
+ return eIsSet(UMLPackage.eINSTANCE.getActivityNode_InPartition())
+ || eIsSet(UMLPackage.eINSTANCE.getActivityNode_InStructuredNode())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getActivityNode_InInterruptibleRegion());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Activity activity = getActivity();
+ if (activity != null) {
+ return activity;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getActivityNode_Activity());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Parameter Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityParameterNodeImpl#getParameter <em>Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActivityParameterNodeImpl
+ extends ObjectNodeImpl
+ implements ActivityParameterNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityParameterNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActivityParameterNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter basicGetParameter() {
+ return (Parameter) eVirtualGet(UMLPackage.ACTIVITY_PARAMETER_NODE__PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateParameter(DiagnosticChain diagnostics, Map context) {
+ return ActivityParameterNodeOperations.validateParameter(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return ActivityParameterNodeOperations.validateSameType(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoEdges(DiagnosticChain diagnostics, Map context) {
+ return ActivityParameterNodeOperations.validateNoEdges(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoIncomingEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityParameterNodeOperations.validateNoIncomingEdges(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoOutgoingEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityParameterNodeOperations.validateNoOutgoingEdges(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Partition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getSubgroups <em>Subgroup</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getContainedNodes <em>Contained Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getContainedEdges <em>Contained Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getInActivity <em>In Activity</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#isDimension <em>Is Dimension</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#isExternal <em>Is External</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getEdges <em>Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getNodes <em>Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getSubpartitions <em>Subpartition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getSuperPartition <em>Super Partition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ActivityPartitionImpl#getRepresents <em>Represents</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ActivityPartitionImpl
+ extends NamedElementImpl
+ implements ActivityPartition {
+
+ /**
+ * The default value of the '{@link #isDimension() <em>Is Dimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDimension()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DIMENSION_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDimension() <em>Is Dimension</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDimension()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DIMENSION_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isExternal() <em>Is External</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_EXTERNAL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isExternal() <em>Is External</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isExternal()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_EXTERNAL_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActivityPartitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActivityPartition();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity getInActivity() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_PARTITION__IN_ACTIVITY)
+ return null;
+ return (Activity) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDimension() {
+ return (eFlags & IS_DIMENSION_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isExternal() {
+ return (eFlags & IS_EXTERNAL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityPartition createSubpartition() {
+ ActivityPartition newSubpartition = UMLFactory.eINSTANCE
+ .createActivityPartition();
+ getSubpartitions().add(newSubpartition);
+ return newSubpartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityPartition getSuperPartition() {
+ if (eContainerFeatureID != UMLPackage.ACTIVITY_PARTITION__SUPER_PARTITION)
+ return null;
+ return (ActivityPartition) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetRepresents() {
+ return (Element) eVirtualGet(UMLPackage.ACTIVITY_PARTITION__REPRESENTS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNodesAndEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityGroupOperations.validateNodesAndEdges(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotContained(DiagnosticChain diagnostics, Map context) {
+ return ActivityGroupOperations.validateNotContained(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGroupOwned(DiagnosticChain diagnostics, Map context) {
+ return ActivityGroupOperations.validateGroupOwned(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIsDimension(DiagnosticChain diagnostics, Map context) {
+ return ActivityPartitionOperations.validateIsDimension(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNodeOrEdge(DiagnosticChain diagnostics, Map context) {
+ return ActivityPartitionOperations.validateNodeOrEdge(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRepresentsPart(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityPartitionOperations.validateRepresentsPart(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRepresentsClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityPartitionOperations.validateRepresentsClassifier(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRepresentsPartAndIsContained(
+ DiagnosticChain diagnostics, Map context) {
+ return ActivityPartitionOperations
+ .validateRepresentsPartAndIsContained(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubgroups() {
+ return eIsSet(UMLPackage.eINSTANCE.getActivityPartition_Subpartition());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements() || isSetSubgroups();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup basicGetSuperGroup() {
+ ActivityPartition superPartition = getSuperPartition();
+ if (superPartition != null) {
+ return superPartition;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup getSuperGroup() {
+ ActivityGroup superGroup = basicGetSuperGroup();
+ return superGroup == null
+ ? null
+ : (ActivityGroup) eResolveProxy((InternalEObject) superGroup);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSuperGroup() {
+ return eIsSet(UMLPackage.eINSTANCE
+ .getActivityPartition_SuperPartition());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ if (isSetSuperGroup()) {
+ return basicGetSuperGroup();
+ }
+ Activity inActivity = getInActivity();
+ if (inActivity != null) {
+ return inActivity;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner() || isSetSuperGroup()
+ || eIsSet(UMLPackage.eINSTANCE.getActivityGroup_InActivity());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetContainedNodes() {
+ return eIsSet(UMLPackage.eINSTANCE.getActivityPartition_Node());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Actor</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ActorImpl
+ extends BehavioredClassifierImpl
+ implements Actor {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ActorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getActor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociations(DiagnosticChain diagnostics, Map context) {
+ return ActorOperations.validateAssociations(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Add Structural Feature Value Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl#isReplaceAll <em>Is Replace All</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AddStructuralFeatureValueActionImpl#getInsertAt <em>Insert At</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AddStructuralFeatureValueActionImpl
+ extends WriteStructuralFeatureActionImpl
+ implements AddStructuralFeatureValueAction {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REPLACE_ALL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REPLACE_ALL_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AddStructuralFeatureValueActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAddStructuralFeatureValueAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReplaceAll() {
+ return (eFlags & IS_REPLACE_ALL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getInsertAt() {
+ InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.ADD_STRUCTURAL_FEATURE_VALUE_ACTION__INSERT_AT);
+ return insertAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInsertAt(EClass eClass) {
+ InputPin newInsertAt = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setInsertAt(newInsertAt);
+ return newInsertAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInsertAt() {
+ InputPin newInsertAt = UMLFactory.eINSTANCE.createInputPin();
+ setInsertAt(newInsertAt);
+ return newInsertAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUnlimitedNaturalAndMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return AddStructuralFeatureValueActionOperations
+ .validateUnlimitedNaturalAndMultiplicity(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Add Variable Value Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl#isReplaceAll <em>Is Replace All</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AddVariableValueActionImpl#getInsertAt <em>Insert At</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AddVariableValueActionImpl
+ extends WriteVariableActionImpl
+ implements AddVariableValueAction {
+
+ /**
+ * The default value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REPLACE_ALL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REPLACE_ALL_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AddVariableValueActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAddVariableValueAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReplaceAll() {
+ return (eFlags & IS_REPLACE_ALL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getInsertAt() {
+ InputPin insertAt = (InputPin) eVirtualGet(UMLPackage.ADD_VARIABLE_VALUE_ACTION__INSERT_AT);
+ return insertAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInsertAt(EClass eClass) {
+ InputPin newInsertAt = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setInsertAt(newInsertAt);
+ return newInsertAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInsertAt() {
+ InputPin newInsertAt = UMLFactory.eINSTANCE.createInputPin();
+ setInsertAt(newInsertAt);
+ return newInsertAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSingleInputPin(DiagnosticChain diagnostics,
+ Map context) {
+ return AddVariableValueActionOperations.validateSingleInputPin(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Any Receive Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class AnyReceiveEventImpl
+ extends MessageEventImpl
+ implements AnyReceiveEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AnyReceiveEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Artifact</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getFileName <em>File Name</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getNestedArtifacts <em>Nested Artifact</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getManifestations <em>Manifestation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedOperations <em>Owned Operation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ArtifactImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArtifactImpl
+ extends ClassifierImpl
+ implements Artifact {
+
+ /**
+ * The default value of the '{@link #getFileName() <em>File Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFileName()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_NAME_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArtifactImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getArtifact();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFileName() {
+ String fileName = (String) eVirtualGet(UMLPackage.ARTIFACT__FILE_NAME);
+ return fileName == null
+ ? FILE_NAME_EDEFAULT
+ : fileName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Artifact createNestedArtifact(EClass eClass) {
+ Artifact newNestedArtifact = (Artifact) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getNestedArtifacts().add(newNestedArtifact);
+ return newNestedArtifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Artifact createNestedArtifact() {
+ Artifact newNestedArtifact = UMLFactory.eINSTANCE.createArtifact();
+ getNestedArtifacts().add(newNestedArtifact);
+ return newNestedArtifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Manifestation createManifestation() {
+ Manifestation newManifestation = UMLFactory.eINSTANCE
+ .createManifestation();
+ getManifestations().add(newManifestation);
+ return newManifestation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation createOwnedOperation() {
+ Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation();
+ getOwnedOperations().add(newOwnedOperation);
+ return newOwnedOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getArtifact_NestedArtifact())
+ || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedOperation())
+ || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getArtifact_Manifestation());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeatures() {
+ return super.isSetFeatures()
+ || eIsSet(UMLPackage.eINSTANCE.getArtifact_OwnedOperation());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Association Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getMemberEnds <em>Member End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getOwnedEnds <em>Owned End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#isDerived <em>Is Derived</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getEndTypes <em>End Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationClassImpl#getNavigableOwnedEnds <em>Navigable Owned End</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AssociationClassImpl
+ extends ClassImpl
+ implements AssociationClass {
+
+ /**
+ * The default value of the '{@link #isDerived() <em>Is Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerived()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DERIVED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDerived() <em>Is Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerived()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DERIVED_EFLAG = 1 << 11;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AssociationClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAssociationClass();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedEnd(EClass eClass) {
+ Property newOwnedEnd = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedEnds().add(newOwnedEnd);
+ return newOwnedEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedEnd() {
+ Property newOwnedEnd = UMLFactory.eINSTANCE.createProperty();
+ getOwnedEnds().add(newOwnedEnd);
+ return newOwnedEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDerived() {
+ return (eFlags & IS_DERIVED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecializedEndNumber(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateSpecializedEndNumber(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecializedEndTypes(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateSpecializedEndTypes(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBinaryAssociations(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateBinaryAssociations(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociationEnds(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateAssociationEnds(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotBeDefined(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationClassOperations.validateCannotBeDefined(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return eIsSet(UMLPackage.eINSTANCE.getAssociation_EndType());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMembers() {
+ return super.isSetMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getAssociation_MemberEnd());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeatures() {
+ return super.isSetFeatures()
+ || eIsSet(UMLPackage.eINSTANCE.getAssociation_OwnedEnd());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Association</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getMemberEnds <em>Member End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getOwnedEnds <em>Owned End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#isDerived <em>Is Derived</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getEndTypes <em>End Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.AssociationImpl#getNavigableOwnedEnds <em>Navigable Owned End</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AssociationImpl
+ extends ClassifierImpl
+ implements Association {
+
+ /**
+ * The default value of the '{@link #isDerived() <em>Is Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerived()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DERIVED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDerived() <em>Is Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerived()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DERIVED_EFLAG = 1 << 10;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AssociationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getAssociation();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedEnd(EClass eClass) {
+ Property newOwnedEnd = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedEnds().add(newOwnedEnd);
+ return newOwnedEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedEnd() {
+ Property newOwnedEnd = UMLFactory.eINSTANCE.createProperty();
+ getOwnedEnds().add(newOwnedEnd);
+ return newOwnedEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDerived() {
+ return (eFlags & IS_DERIVED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecializedEndNumber(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateSpecializedEndNumber(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecializedEndTypes(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateSpecializedEndTypes(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBinaryAssociations(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateBinaryAssociations(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociationEnds(DiagnosticChain diagnostics,
+ Map context) {
+ return AssociationOperations.validateAssociationEnds(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return eIsSet(UMLPackage.eINSTANCE.getAssociation_EndType());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMembers() {
+ return super.isSetMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getAssociation_MemberEnd());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeatures() {
+ return super.isSetFeatures()
+ || eIsSet(UMLPackage.eINSTANCE.getAssociation_OwnedEnd());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Behavior Execution Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorExecutionSpecificationImpl#getBehavior <em>Behavior</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BehaviorExecutionSpecificationImpl
+ extends ExecutionSpecificationImpl
+ implements BehaviorExecutionSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BehaviorExecutionSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getBehaviorExecutionSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetBehavior() {
+ return (Behavior) eVirtualGet(UMLPackage.BEHAVIOR_EXECUTION_SPECIFICATION__BEHAVIOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Behavior</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#isReentrant <em>Is Reentrant</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getRedefinedBehaviors <em>Redefined Behavior</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getOwnedParameters <em>Owned Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getOwnedParameterSets <em>Owned Parameter Set</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehaviorImpl#getSpecification <em>Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BehaviorImpl
+ extends ClassImpl
+ implements Behavior {
+
+ /**
+ * The default value of the '{@link #isReentrant() <em>Is Reentrant</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReentrant()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REENTRANT_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReentrant() <em>Is Reentrant</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReentrant()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REENTRANT_EFLAG = 1 << 11;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BehaviorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getBehavior();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReentrant() {
+ return (eFlags & IS_REENTRANT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter createOwnedParameter() {
+ Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter();
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioredClassifier getContext() {
+ BehavioredClassifier context = basicGetContext();
+ return context == null
+ ? null
+ : (context.eIsProxy()
+ ? (BehavioredClassifier) eResolveProxy((InternalEObject) context)
+ : context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterSet createOwnedParameterSet() {
+ ParameterSet newOwnedParameterSet = UMLFactory.eINSTANCE
+ .createParameterSet();
+ getOwnedParameterSets().add(newOwnedParameterSet);
+ return newOwnedParameterSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature basicGetSpecification() {
+ return (BehavioralFeature) eVirtualGet(UMLPackage.BEHAVIOR__SPECIFICATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateParameters(DiagnosticChain diagnostics, Map context) {
+ return BehaviorOperations
+ .validateParameters(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFeatureOfContextClassifier(
+ DiagnosticChain diagnostics, Map context) {
+ return BehaviorOperations.validateFeatureOfContextClassifier(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMustRealize(DiagnosticChain diagnostics, Map context) {
+ return BehaviorOperations.validateMustRealize(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMostOneBehaviour(DiagnosticChain diagnostics,
+ Map context) {
+ return BehaviorOperations.validateMostOneBehaviour(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return super.isSetRedefinedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getBehavior_RedefinedBehavior());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getBehavior_OwnedParameter())
+ || eIsSet(UMLPackage.eINSTANCE.getBehavior_OwnedParameterSet());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Behavioral Feature</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#isLeaf <em>Is Leaf</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getFeaturingClassifiers <em>Featuring Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#isStatic <em>Is Static</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getOwnedParameters <em>Owned Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getMethods <em>Method</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getConcurrency <em>Concurrency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getRaisedExceptions <em>Raised Exception</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioralFeatureImpl#getOwnedParameterSets <em>Owned Parameter Set</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BehavioralFeatureImpl
+ extends NamespaceImpl
+ implements BehavioralFeature {
+
+ /**
+ * The default value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_LEAF_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_LEAF_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STATIC_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_STATIC_EFLAG = 1 << 9;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ABSTRACT_EFLAG = 1 << 10;
+
+ /**
+ * The default value of the '{@link #getConcurrency() <em>Concurrency</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getConcurrency()
+ * @generated
+ * @ordered
+ */
+ protected static final CallConcurrencyKind CONCURRENCY_EDEFAULT = CallConcurrencyKind.SEQUENTIAL_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BehavioralFeatureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getBehavioralFeature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLeaf() {
+ return (eFlags & IS_LEAF_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStatic() {
+ return (eFlags & IS_STATIC_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter createOwnedParameter() {
+ Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter();
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAbstract() {
+ return (eFlags & IS_ABSTRACT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CallConcurrencyKind getConcurrency() {
+ CallConcurrencyKind concurrency = (CallConcurrencyKind) eVirtualGet(UMLPackage.BEHAVIORAL_FEATURE__CONCURRENCY);
+ return concurrency == null
+ ? CONCURRENCY_EDEFAULT
+ : concurrency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterSet createOwnedParameterSet() {
+ ParameterSet newOwnedParameterSet = UMLFactory.eINSTANCE
+ .createParameterSet();
+ getOwnedParameterSets().add(newOwnedParameterSet);
+ return newOwnedParameterSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionContextValid(
+ DiagnosticChain diagnostics, Map context) {
+ return RedefinableElementOperations.validateRedefinitionContextValid(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics,
+ Map context) {
+ return RedefinableElementOperations.validateRedefinitionConsistent(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid(RedefinableElement redefinable) {
+ return RedefinableElementOperations.isRedefinitionContextValid(this,
+ redefinable);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return RedefinableElementOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid() {
+ return RedefinableElementOperations.isRedefinitionContextValid(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDistinguishableFrom(NamedElement n, Namespace ns) {
+ return BehavioralFeatureOperations.isDistinguishableFrom(this, n, ns);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinitionContexts() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeaturingClassifiers() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Behaviored Classifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedBehaviors <em>Owned Behavior</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getClassifierBehavior <em>Classifier Behavior</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getInterfaceRealizations <em>Interface Realization</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BehavioredClassifierImpl#getOwnedTriggers <em>Owned Trigger</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class BehavioredClassifierImpl
+ extends ClassifierImpl
+ implements BehavioredClassifier {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BehavioredClassifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getBehavioredClassifier();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createOwnedBehavior(EClass eClass) {
+ Behavior newOwnedBehavior = (Behavior) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedBehaviors().add(newOwnedBehavior);
+ return newOwnedBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createOwnedBehavior() {
+ Behavior newOwnedBehavior = UMLFactory.eINSTANCE.createBehavior();
+ getOwnedBehaviors().add(newOwnedBehavior);
+ return newOwnedBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getClassifierBehavior() {
+ Behavior classifierBehavior = (Behavior) eVirtualGet(UMLPackage.BEHAVIORED_CLASSIFIER__CLASSIFIER_BEHAVIOR);
+ return classifierBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterfaceRealization createInterfaceRealization() {
+ InterfaceRealization newInterfaceRealization = UMLFactory.eINSTANCE
+ .createInterfaceRealization();
+ getInterfaceRealizations().add(newInterfaceRealization);
+ return newInterfaceRealization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createOwnedTrigger() {
+ Trigger newOwnedTrigger = UMLFactory.eINSTANCE.createTrigger();
+ getOwnedTriggers().add(newOwnedTrigger);
+ return newOwnedTrigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassBehavior(DiagnosticChain diagnostics,
+ Map context) {
+ return BehavioredClassifierOperations.validateClassBehavior(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getBehavioredClassifier_OwnedBehavior())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getBehavioredClassifier_OwnedTrigger());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Broadcast Signal Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.BroadcastSignalActionImpl#getSignal <em>Signal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BroadcastSignalActionImpl
+ extends InvocationActionImpl
+ implements BroadcastSignalAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BroadcastSignalActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getBroadcastSignalAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Signal basicGetSignal() {
+ return (Signal) eVirtualGet(UMLPackage.BROADCAST_SIGNAL_ACTION__SIGNAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNumberAndOrder(DiagnosticChain diagnostics,
+ Map context) {
+ return BroadcastSignalActionOperations.validateNumberAndOrder(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOrderingMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return BroadcastSignalActionOperations
+ .validateTypeOrderingMultiplicity(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Call Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallActionImpl#isSynchronous <em>Is Synchronous</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallActionImpl#getResults <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CallActionImpl
+ extends InvocationActionImpl
+ implements CallAction {
+
+ /**
+ * The default value of the '{@link #isSynchronous() <em>Is Synchronous</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSynchronous()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SYNCHRONOUS_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isSynchronous() <em>Is Synchronous</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSynchronous()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_SYNCHRONOUS_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CallActionImpl() {
+ super();
+ eFlags |= IS_SYNCHRONOUS_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCallAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSynchronous() {
+ return (eFlags & IS_SYNCHRONOUS_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ getResults().add(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSynchronousCall(DiagnosticChain diagnostics,
+ Map context) {
+ return CallActionOperations.validateSynchronousCall(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNumberAndOrder(DiagnosticChain diagnostics,
+ Map context) {
+ return CallActionOperations.validateNumberAndOrder(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOrderingMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return CallActionOperations.validateTypeOrderingMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Call Behavior Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallBehaviorActionImpl#getBehavior <em>Behavior</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CallBehaviorActionImpl
+ extends CallActionImpl
+ implements CallBehaviorAction {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CallBehaviorActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCallBehaviorAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetBehavior() {
+ return (Behavior) eVirtualGet(UMLPackage.CALL_BEHAVIOR_ACTION__BEHAVIOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateArgumentPinEqualParameter(
+ DiagnosticChain diagnostics, Map context) {
+ return CallBehaviorActionOperations.validateArgumentPinEqualParameter(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultPinEqualParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return CallBehaviorActionOperations.validateResultPinEqualParameter(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOrderingMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return CallBehaviorActionOperations.validateTypeOrderingMultiplicity(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Call Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallEventImpl#getOperation <em>Operation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CallEventImpl
+ extends MessageEventImpl
+ implements CallEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CallEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCallEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetOperation() {
+ return (Operation) eVirtualGet(UMLPackage.CALL_EVENT__OPERATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Call Operation Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl#getOperation <em>Operation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CallOperationActionImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CallOperationActionImpl
+ extends CallActionImpl
+ implements CallOperationAction {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CallOperationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCallOperationAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetOperation() {
+ return (Operation) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__OPERATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getTarget() {
+ InputPin target = (InputPin) eVirtualGet(UMLPackage.CALL_OPERATION_ACTION__TARGET);
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget(EClass eClass) {
+ InputPin newTarget = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget() {
+ InputPin newTarget = UMLFactory.eINSTANCE.createInputPin();
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateArgumentPinEqualParameter(
+ DiagnosticChain diagnostics, Map context) {
+ return CallOperationActionOperations.validateArgumentPinEqualParameter(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultPinEqualParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return CallOperationActionOperations.validateResultPinEqualParameter(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeTargetPin(DiagnosticChain diagnostics,
+ Map context) {
+ return CallOperationActionOperations.validateTypeTargetPin(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOrderingMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return CallOperationActionOperations.validateTypeOrderingMultiplicity(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Central Buffer Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CentralBufferNodeImpl
+ extends ObjectNodeImpl
+ implements CentralBufferNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CentralBufferNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Change Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ChangeEventImpl#getChangeExpression <em>Change Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ChangeEventImpl
+ extends EventImpl
+ implements ChangeEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChangeEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getChangeEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getChangeExpression() {
+ ValueSpecification changeExpression = (ValueSpecification) eVirtualGet(UMLPackage.CHANGE_EVENT__CHANGE_EXPRESSION);
+ return changeExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createChangeExpression(EClass eClass) {
+ ValueSpecification newChangeExpression = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setChangeExpression(newChangeExpression);
+ return newChangeExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Class</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedBehaviors <em>Owned Behavior</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getClassifierBehavior <em>Classifier Behavior</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getInterfaceRealizations <em>Interface Realization</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedTriggers <em>Owned Trigger</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedOperations <em>Owned Operation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getNestedClassifiers <em>Nested Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getSuperClasses <em>Super Class</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#isActive <em>Is Active</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedReceptions <em>Owned Reception</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getExtensions <em>Extension</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassImpl#isAbstract <em>Is Abstract</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassImpl
+ extends EncapsulatedClassifierImpl
+ implements org.eclipse.uml2.uml.Class {
+
+ /**
+ * The default value of the '{@link #isActive() <em>Is Active</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActive()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ACTIVE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isActive() <em>Is Active</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isActive()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ACTIVE_EFLAG = 1 << 10;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getClass_();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createOwnedBehavior(EClass eClass) {
+ Behavior newOwnedBehavior = (Behavior) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedBehaviors().add(newOwnedBehavior);
+ return newOwnedBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createOwnedBehavior() {
+ Behavior newOwnedBehavior = UMLFactory.eINSTANCE.createBehavior();
+ getOwnedBehaviors().add(newOwnedBehavior);
+ return newOwnedBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getClassifierBehavior() {
+ Behavior classifierBehavior = (Behavior) eVirtualGet(UMLPackage.CLASS__CLASSIFIER_BEHAVIOR);
+ return classifierBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterfaceRealization createInterfaceRealization() {
+ InterfaceRealization newInterfaceRealization = UMLFactory.eINSTANCE
+ .createInterfaceRealization();
+ getInterfaceRealizations().add(newInterfaceRealization);
+ return newInterfaceRealization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createOwnedTrigger() {
+ Trigger newOwnedTrigger = UMLFactory.eINSTANCE.createTrigger();
+ getOwnedTriggers().add(newOwnedTrigger);
+ return newOwnedTrigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation createOwnedOperation() {
+ Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation();
+ getOwnedOperations().add(newOwnedOperation);
+ return newOwnedOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier createNestedClassifier(EClass eClass) {
+ Classifier newNestedClassifier = (Classifier) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getNestedClassifiers().add(newNestedClassifier);
+ return newNestedClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSuperClasses() {
+ return !getSuperClasses().isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isActive() {
+ return (eFlags & IS_ACTIVE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Reception createOwnedReception() {
+ Reception newOwnedReception = UMLFactory.eINSTANCE.createReception();
+ getOwnedReceptions().add(newOwnedReception);
+ return newOwnedReception;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedAttributes() {
+ List ownedAttribute = (List) eVirtualGet(UMLPackage.CLASS__OWNED_ATTRIBUTE);
+ return ownedAttribute != null && !ownedAttribute.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAbstract() {
+ return (eFlags & IS_ABSTRACT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIsAbstract() {
+ return ((eFlags & IS_ABSTRACT_EFLAG) != 0) != IS_ABSTRACT_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassBehavior(DiagnosticChain diagnostics,
+ Map context) {
+ return BehavioredClassifierOperations.validateClassBehavior(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePassiveClass(DiagnosticChain diagnostics, Map context) {
+ return ClassOperations.validatePassiveClass(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List inherit(List inhs) {
+ return ClassOperations.inherit(this, inhs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getBehavioredClassifier_InterfaceRealization());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeatures() {
+ return super.isSetFeatures()
+ || eIsSet(UMLPackage.eINSTANCE.getClass_OwnedOperation())
+ || eIsSet(UMLPackage.eINSTANCE.getClass_OwnedReception());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return super.isSetAttributes() || isSetOwnedAttributes();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getGenerals() {
+ return getSuperClasses();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#isLeaf <em>Is Leaf</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getPackage <em>Package</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getTemplateBindings <em>Template Binding</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getCollaborationUses <em>Collaboration Use</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#isAbstract <em>Is Abstract</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getGeneralizations <em>Generalization</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getPowertypeExtents <em>Powertype Extent</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getInheritedMembers <em>Inherited Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRedefinedClassifiers <em>Redefined Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getGenerals <em>General</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedUseCases <em>Owned Use Case</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getUseCases <em>Use Case</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getSubstitutions <em>Substitution</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getRepresentation <em>Representation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierImpl#getOwnedSignature <em>Owned Signature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ClassifierImpl
+ extends NamespaceImpl
+ implements Classifier {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_LEAF_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_LEAF_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ABSTRACT_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isAbstract() <em>Is Abstract</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAbstract()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ABSTRACT_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getClassifier();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLeaf() {
+ return (eFlags & IS_LEAF_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTemplateParameter() {
+ return eVirtualGet(UMLPackage.CLASSIFIER__TEMPLATE_PARAMETER) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.CLASSIFIER__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.CLASSIFIER__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVisibility() {
+ return eVirtualIsSet(UMLPackage.CLASSIFIER__VISIBILITY)
+ && eVirtualGet(UMLPackage.CLASSIFIER__VISIBILITY) != VISIBILITY_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE
+ .createTemplateBinding();
+ getTemplateBindings().add(newTemplateBinding);
+ return newTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getOwnedTemplateSignature() {
+ TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_TEMPLATE_SIGNATURE);
+ return ownedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature(EClass eClass) {
+ TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature() {
+ TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE
+ .createTemplateSignature();
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CollaborationUse createCollaborationUse() {
+ CollaborationUse newCollaborationUse = UMLFactory.eINSTANCE
+ .createCollaborationUse();
+ getCollaborationUses().add(newCollaborationUse);
+ return newCollaborationUse;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAbstract() {
+ return (eFlags & IS_ABSTRACT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Generalization createGeneralization() {
+ Generalization newGeneralization = UMLFactory.eINSTANCE
+ .createGeneralization();
+ getGeneralizations().add(newGeneralization);
+ return newGeneralization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase createOwnedUseCase() {
+ UseCase newOwnedUseCase = UMLFactory.eINSTANCE.createUseCase();
+ getOwnedUseCases().add(newOwnedUseCase);
+ return newOwnedUseCase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Substitution createSubstitution() {
+ Substitution newSubstitution = UMLFactory.eINSTANCE
+ .createSubstitution();
+ getSubstitutions().add(newSubstitution);
+ return newSubstitution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CollaborationUse getRepresentation() {
+ CollaborationUse representation = (CollaborationUse) eVirtualGet(UMLPackage.CLASSIFIER__REPRESENTATION);
+ return representation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RedefinableTemplateSignature getOwnedSignature() {
+ RedefinableTemplateSignature ownedSignature = (RedefinableTemplateSignature) eVirtualGet(UMLPackage.CLASSIFIER__OWNED_SIGNATURE);
+ return ownedSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RedefinableTemplateSignature createOwnedSignature() {
+ RedefinableTemplateSignature newOwnedSignature = UMLFactory.eINSTANCE
+ .createRedefinableTemplateSignature();
+ setOwnedSignature(newOwnedSignature);
+ return newOwnedSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionContextValid(
+ DiagnosticChain diagnostics, Map context) {
+ return RedefinableElementOperations.validateRedefinitionContextValid(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics,
+ Map context) {
+ return RedefinableElementOperations.validateRedefinitionConsistent(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid(RedefinableElement redefinable) {
+ return RedefinableElementOperations.isRedefinitionContextValid(this,
+ redefinable);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return RedefinableElementOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid() {
+ return RedefinableElementOperations.isRedefinitionContextValid(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplate() {
+ return ClassifierOperations.isTemplate(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoCyclesInGeneralization(
+ DiagnosticChain diagnostics, Map context) {
+ return ClassifierOperations.validateNoCyclesInGeneralization(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecializeType(DiagnosticChain diagnostics,
+ Map context) {
+ return ClassifierOperations.validateSpecializeType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGeneralizationHierarchies(
+ DiagnosticChain diagnostics, Map context) {
+ return ClassifierOperations.validateGeneralizationHierarchies(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSpecialize(DiagnosticChain diagnostics, Map context) {
+ return ClassifierOperations.validateSpecialize(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics,
+ Map context) {
+ return ClassifierOperations.validateMapsToGeneralizationSet(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean maySpecializeType(Classifier c) {
+ return ClassifierOperations.maySpecializeType(this, c);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List inheritableMembers(Classifier c) {
+ return ClassifierOperations.inheritableMembers(this, c);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean hasVisibilityOf(NamedElement n) {
+ return ClassifierOperations.hasVisibilityOf(this, n);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean conformsTo(Classifier other) {
+ return ClassifierOperations.conformsTo(this, other);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List inherit(List inhs) {
+ return ClassifierOperations.inherit(this, inhs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean maySpecializeType() {
+ return ClassifierOperations.maySpecializeType(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return eIsSet(UMLPackage.eINSTANCE.getClassifier_RedefinedClassifier());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinitionContexts() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getParameterableElement_OwningTemplateParameter());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ org.eclipse.uml2.uml.Package package_ = getPackage();
+ if (package_ != null) {
+ return package_;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getType_Package());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeatures() {
+ return isSetAttributes();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMembers() {
+ return super.isSetMembers() || isSetFeatures()
+ || eIsSet(UMLPackage.eINSTANCE.getClassifier_InheritedMember());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getClassifier_OwnedUseCase());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classifier Template Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#isAllowSubstitutable <em>Allow Substitutable</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#getDefaultClassifier <em>Default Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#getConstrainingClassifier <em>Constraining Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClassifierTemplateParameterImpl#getParameteredElement <em>Parametered Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClassifierTemplateParameterImpl
+ extends TemplateParameterImpl
+ implements ClassifierTemplateParameter {
+
+ /**
+ * The default value of the '{@link #isAllowSubstitutable() <em>Allow Substitutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllowSubstitutable()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean ALLOW_SUBSTITUTABLE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isAllowSubstitutable() <em>Allow Substitutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAllowSubstitutable()
+ * @generated
+ * @ordered
+ */
+ protected static final int ALLOW_SUBSTITUTABLE_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClassifierTemplateParameterImpl() {
+ super();
+ eFlags |= ALLOW_SUBSTITUTABLE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getClassifierTemplateParameter();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAllowSubstitutable() {
+ return (eFlags & ALLOW_SUBSTITUTABLE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetDefaultClassifier() {
+ return (Classifier) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__DEFAULT_CLASSIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetConstrainingClassifier() {
+ return (Classifier) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__CONSTRAINING_CLASSIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement basicGetParameteredElement() {
+ return (ParameterableElement) eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetParameteredElement() {
+ return eVirtualGet(UMLPackage.CLASSIFIER_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConstrainingClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return ClassifierTemplateParameterOperations
+ .validateConstrainingClassifier(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Clause</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getTests <em>Test</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getBodies <em>Body</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getPredecessorClauses <em>Predecessor Clause</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getSuccessorClauses <em>Successor Clause</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getDecider <em>Decider</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClauseImpl#getBodyOutputs <em>Body Output</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClauseImpl
+ extends ElementImpl
+ implements Clause {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClauseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getClause();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin basicGetDecider() {
+ return (OutputPin) eVirtualGet(UMLPackage.CLAUSE__DECIDER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeciderOutput(DiagnosticChain diagnostics,
+ Map context) {
+ return ClauseOperations.validateDeciderOutput(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBodyOutput(DiagnosticChain diagnostics, Map context) {
+ return ClauseOperations.validateBodyOutput(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Clear Association Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl#getObject <em>Object</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ClearAssociationActionImpl#getAssociation <em>Association</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClearAssociationActionImpl
+ extends ActionImpl
+ implements ClearAssociationAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClearAssociationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getClearAssociationAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetAssociation() {
+ return (Association) eVirtualGet(UMLPackage.CLEAR_ASSOCIATION_ACTION__ASSOCIATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return ClearAssociationActionOperations.validateSameType(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ClearAssociationActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Clear Structural Feature Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ClearStructuralFeatureActionImpl
+ extends StructuralFeatureActionImpl
+ implements ClearStructuralFeatureAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClearStructuralFeatureActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Clear Variable Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ClearVariableActionImpl
+ extends VariableActionImpl
+ implements ClearVariableAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClearVariableActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Collaboration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getRoles <em>Role</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getParts <em>Part</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getOwnedConnectors <em>Owned Connector</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationImpl#getCollaborationRoles <em>Collaboration Role</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CollaborationImpl
+ extends BehavioredClassifierImpl
+ implements Collaboration {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CollaborationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCollaboration();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Connector createOwnedConnector() {
+ Connector newOwnedConnector = UMLFactory.eINSTANCE.createConnector();
+ getOwnedConnectors().add(newOwnedConnector);
+ return newOwnedConnector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicities(DiagnosticChain diagnostics,
+ Map context) {
+ return StructuredClassifierOperations.validateMultiplicities(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRoles() {
+ return eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedAttribute())
+ || eIsSet(UMLPackage.eINSTANCE.getCollaboration_CollaborationRole());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedAttribute())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedConnector());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return super.isSetAttributes()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMembers() {
+ return super.isSetMembers() || isSetRoles();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Collaboration Use</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CollaborationUseImpl#getRoleBindings <em>Role Binding</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CollaborationUseImpl
+ extends NamedElementImpl
+ implements CollaborationUse {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CollaborationUseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCollaborationUse();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Collaboration basicGetType() {
+ return (Collaboration) eVirtualGet(UMLPackage.COLLABORATION_USE__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dependency createRoleBinding(EClass eClass) {
+ Dependency newRoleBinding = (Dependency) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getRoleBindings().add(newRoleBinding);
+ return newRoleBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dependency createRoleBinding() {
+ Dependency newRoleBinding = UMLFactory.eINSTANCE.createDependency();
+ getRoleBindings().add(newRoleBinding);
+ return newRoleBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClientElements(DiagnosticChain diagnostics,
+ Map context) {
+ return CollaborationUseOperations.validateClientElements(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEveryRole(DiagnosticChain diagnostics, Map context) {
+ return CollaborationUseOperations.validateEveryRole(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConnectors(DiagnosticChain diagnostics, Map context) {
+ return CollaborationUseOperations.validateConnectors(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Combined Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getInteractionOperator <em>Interaction Operator</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getOperands <em>Operand</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CombinedFragmentImpl#getCfragmentGates <em>Cfragment Gate</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CombinedFragmentImpl
+ extends InteractionFragmentImpl
+ implements CombinedFragment {
+
+ /**
+ * The default value of the '{@link #getInteractionOperator() <em>Interaction Operator</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInteractionOperator()
+ * @generated
+ * @ordered
+ */
+ protected static final InteractionOperatorKind INTERACTION_OPERATOR_EDEFAULT = InteractionOperatorKind.SEQ_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CombinedFragmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCombinedFragment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionOperatorKind getInteractionOperator() {
+ InteractionOperatorKind interactionOperator = (InteractionOperatorKind) eVirtualGet(UMLPackage.COMBINED_FRAGMENT__INTERACTION_OPERATOR);
+ return interactionOperator == null
+ ? INTERACTION_OPERATOR_EDEFAULT
+ : interactionOperator;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionOperand createOperand() {
+ InteractionOperand newOperand = UMLFactory.eINSTANCE
+ .createInteractionOperand();
+ getOperands().add(newOperand);
+ return newOperand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Gate createCfragmentGate() {
+ Gate newCfragmentGate = UMLFactory.eINSTANCE.createGate();
+ getCfragmentGates().add(newCfragmentGate);
+ return newCfragmentGate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOptLoopBreakNeg(DiagnosticChain diagnostics,
+ Map context) {
+ return CombinedFragmentOperations.validateOptLoopBreakNeg(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMinintAndMaxint(DiagnosticChain diagnostics,
+ Map context) {
+ return CombinedFragmentOperations.validateMinintAndMaxint(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBreak(DiagnosticChain diagnostics, Map context) {
+ return CombinedFragmentOperations.validateBreak(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConsiderAndIgnore(DiagnosticChain diagnostics,
+ Map context) {
+ return CombinedFragmentOperations.validateConsiderAndIgnore(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Comment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CommentImpl#getBody <em>Body</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CommentImpl#getAnnotatedElements <em>Annotated Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CommentImpl
+ extends ElementImpl
+ implements Comment {
+
+ /**
+ * The default value of the '{@link #getBody() <em>Body</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBody()
+ * @generated
+ * @ordered
+ */
+ protected static final String BODY_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CommentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getComment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBody() {
+ String body = (String) eVirtualGet(UMLPackage.COMMENT__BODY);
+ return body == null
+ ? BODY_EDEFAULT
+ : body;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Communication Path</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CommunicationPathImpl
+ extends AssociationImpl
+ implements CommunicationPath {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CommunicationPathImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCommunicationPath();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Component</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#isIndirectlyInstantiated <em>Is Indirectly Instantiated</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getRequireds <em>Required</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getProvideds <em>Provided</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getPackagedElements <em>Packaged Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentImpl#getRealizations <em>Realization</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ComponentImpl
+ extends ClassImpl
+ implements Component {
+
+ /**
+ * The default value of the '{@link #isIndirectlyInstantiated() <em>Is Indirectly Instantiated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIndirectlyInstantiated()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_INDIRECTLY_INSTANTIATED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isIndirectlyInstantiated() <em>Is Indirectly Instantiated</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIndirectlyInstantiated()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_INDIRECTLY_INSTANTIATED_EFLAG = 1 << 11;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComponentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getComponent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIndirectlyInstantiated() {
+ return (eFlags & IS_INDIRECTLY_INSTANTIATED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageableElement createPackagedElement(EClass eClass) {
+ PackageableElement newPackagedElement = (PackageableElement) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getPackagedElements().add(newPackagedElement);
+ return newPackagedElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComponentRealization createRealization() {
+ ComponentRealization newRealization = UMLFactory.eINSTANCE
+ .createComponentRealization();
+ getRealizations().add(newRealization);
+ return newRealization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getComponent_PackagedElement());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Component Realization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getClients <em>Client</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getSuppliers <em>Supplier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getAbstraction <em>Abstraction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ComponentRealizationImpl#getRealizingClassifier <em>Realizing Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ComponentRealizationImpl
+ extends RealizationImpl
+ implements ComponentRealization {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComponentRealizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getComponentRealization();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component getAbstraction() {
+ if (eContainerFeatureID != UMLPackage.COMPONENT_REALIZATION__ABSTRACTION)
+ return null;
+ return (Component) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetRealizingClassifier() {
+ return (Classifier) eVirtualGet(UMLPackage.COMPONENT_REALIZATION__REALIZING_CLASSIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return super.isSetSources()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getComponentRealization_Abstraction());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Component abstraction = getAbstraction();
+ if (abstraction != null) {
+ return abstraction;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getComponentRealization_Abstraction());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Conditional Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#isDeterminate <em>Is Determinate</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#isAssured <em>Is Assured</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getClauses <em>Clause</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConditionalNodeImpl#getResults <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConditionalNodeImpl
+ extends StructuredActivityNodeImpl
+ implements ConditionalNode {
+
+ /**
+ * The default value of the '{@link #isDeterminate() <em>Is Determinate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDeterminate()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DETERMINATE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDeterminate() <em>Is Determinate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDeterminate()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DETERMINATE_EFLAG = 1 << 10;
+
+ /**
+ * The default value of the '{@link #isAssured() <em>Is Assured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAssured()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ASSURED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isAssured() <em>Is Assured</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isAssured()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ASSURED_EFLAG = 1 << 11;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConditionalNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConditionalNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDeterminate() {
+ return (eFlags & IS_DETERMINATE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAssured() {
+ return (eFlags & IS_ASSURED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Clause createClause() {
+ Clause newClause = UMLFactory.eINSTANCE.createClause();
+ getClauses().add(newClause);
+ return newClause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ getResults().add(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultNoIncoming(DiagnosticChain diagnostics,
+ Map context) {
+ return ConditionalNodeOperations.validateResultNoIncoming(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getConditionalNode_Clause());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connectable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementImpl#getEnds <em>End</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ConnectableElementImpl
+ extends TypedElementImpl
+ implements ConnectableElement {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConnectableElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTemplateParameter() {
+ return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT__TEMPLATE_PARAMETER) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.CONNECTABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connectable Element Template Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectableElementTemplateParameterImpl#getParameteredElement <em>Parametered Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConnectableElementTemplateParameterImpl
+ extends TemplateParameterImpl
+ implements ConnectableElementTemplateParameter {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectableElementTemplateParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConnectableElementTemplateParameter();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement basicGetParameteredElement() {
+ return (ParameterableElement) eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetParameteredElement() {
+ return eVirtualGet(UMLPackage.CONNECTABLE_ELEMENT_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connection Point Reference</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl#getEntries <em>Entry</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl#getExits <em>Exit</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectionPointReferenceImpl#getState <em>State</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConnectionPointReferenceImpl
+ extends VertexImpl
+ implements ConnectionPointReference {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectionPointReferenceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConnectionPointReference();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getState() {
+ if (eContainerFeatureID != UMLPackage.CONNECTION_POINT_REFERENCE__STATE)
+ return null;
+ return (State) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEntryPseudostates(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectionPointReferenceOperations.validateEntryPseudostates(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateExitPseudostates(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectionPointReferenceOperations.validateExitPseudostates(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ State state = getState();
+ if (state != null) {
+ return state;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connector End</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl#getDefiningEnd <em>Defining End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl#getPartWithPort <em>Part With Port</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorEndImpl#getRole <em>Role</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConnectorEndImpl
+ extends MultiplicityElementImpl
+ implements ConnectorEnd {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectorEndImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConnectorEnd();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getDefiningEnd() {
+ Property definingEnd = basicGetDefiningEnd();
+ return definingEnd == null
+ ? null
+ : (definingEnd.eIsProxy()
+ ? (Property) eResolveProxy((InternalEObject) definingEnd)
+ : definingEnd);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetPartWithPort() {
+ return (Property) eVirtualGet(UMLPackage.CONNECTOR_END__PART_WITH_PORT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectableElement basicGetRole() {
+ return (ConnectableElement) eVirtualGet(UMLPackage.CONNECTOR_END__ROLE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ConnectorEndOperations.validateMultiplicity(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePartWithPortEmpty(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectorEndOperations.validatePartWithPortEmpty(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRoleAndPartWithPort(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectorEndOperations.validateRoleAndPartWithPort(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSelfPartWithPort(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectorEndOperations.validateSelfPartWithPort(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Connector</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getRedefinedConnectors <em>Redefined Connector</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getEnds <em>End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConnectorImpl#getContracts <em>Contract</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConnectorImpl
+ extends FeatureImpl
+ implements Connector {
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final ConnectorKind KIND_EDEFAULT = ConnectorKind.ASSEMBLY_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConnectorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConnector();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetType() {
+ return (Association) eVirtualGet(UMLPackage.CONNECTOR__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectorEnd createEnd() {
+ ConnectorEnd newEnd = UMLFactory.eINSTANCE.createConnectorEnd();
+ getEnds().add(newEnd);
+ return newEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectorKind getKind() {
+ ConnectorKind kind = (ConnectorKind) eVirtualGet(UMLPackage.CONNECTOR__KIND);
+ return kind == null
+ ? KIND_EDEFAULT
+ : kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypes(DiagnosticChain diagnostics, Map context) {
+ return ConnectorOperations.validateTypes(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompatible(DiagnosticChain diagnostics, Map context) {
+ return ConnectorOperations.validateCompatible(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRoles(DiagnosticChain diagnostics, Map context) {
+ return ConnectorOperations.validateRoles(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBetweenInterfacesPorts(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectorOperations.validateBetweenInterfacesPorts(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBetweenInterfacePortImplements(
+ DiagnosticChain diagnostics, Map context) {
+ return ConnectorOperations.validateBetweenInterfacePortImplements(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBetweenInterfacePortSignature(
+ DiagnosticChain diagnostics, Map context) {
+ return ConnectorOperations.validateBetweenInterfacePortSignature(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUnionSignatureCompatible(
+ DiagnosticChain diagnostics, Map context) {
+ return ConnectorOperations.validateUnionSignatureCompatible(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssemblyConnector(DiagnosticChain diagnostics,
+ Map context) {
+ return ConnectorOperations.validateAssemblyConnector(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return super.isSetRedefinedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getConnector_RedefinedConnector());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Consider Ignore Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConsiderIgnoreFragmentImpl#getMessages <em>Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConsiderIgnoreFragmentImpl
+ extends CombinedFragmentImpl
+ implements ConsiderIgnoreFragment {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConsiderIgnoreFragmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConsiderIgnoreFragment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConsiderOrIgnore(DiagnosticChain diagnostics,
+ Map context) {
+ return ConsiderIgnoreFragmentOperations.validateConsiderOrIgnore(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateType(DiagnosticChain diagnostics, Map context) {
+ return ConsiderIgnoreFragmentOperations.validateType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getConstrainedElements <em>Constrained Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getSpecification <em>Specification</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ConstraintImpl#getContext <em>Context</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ConstraintImpl
+ extends PackageableElementImpl
+ implements Constraint {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getConstraint();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getSpecification() {
+ ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.CONSTRAINT__SPECIFICATION);
+ return specification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createSpecification(EClass eClass) {
+ ValueSpecification newSpecification = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setSpecification(newSpecification);
+ return newSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace getContext() {
+ if (eContainerFeatureID != UMLPackage.CONSTRAINT__CONTEXT)
+ return null;
+ return (Namespace) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotApplyToSelf(DiagnosticChain diagnostics,
+ Map context) {
+ return ConstraintOperations.validateNotApplyToSelf(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationBoolean(
+ DiagnosticChain diagnostics, Map context) {
+ return ConstraintOperations.validateValueSpecificationBoolean(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBooleanValue(DiagnosticChain diagnostics, Map context) {
+ return ConstraintOperations.validateBooleanValue(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoSideEffects(DiagnosticChain diagnostics,
+ Map context) {
+ return ConstraintOperations.validateNoSideEffects(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotAppliedToSelf(DiagnosticChain diagnostics,
+ Map context) {
+ return ConstraintOperations.validateNotAppliedToSelf(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getConstraint_Specification());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Namespace context = getContext();
+ if (context != null) {
+ return context;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Continuation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ContinuationImpl#isSetting <em>Setting</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ContinuationImpl
+ extends InteractionFragmentImpl
+ implements Continuation {
+
+ /**
+ * The default value of the '{@link #isSetting() <em>Setting</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetting()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean SETTING_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isSetting() <em>Setting</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetting()
+ * @generated
+ * @ordered
+ */
+ protected static final int SETTING_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ContinuationImpl() {
+ super();
+ eFlags |= SETTING_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getContinuation();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetting() {
+ return (eFlags & SETTING_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameName(DiagnosticChain diagnostics, Map context) {
+ return ContinuationOperations.validateSameName(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGlobal(DiagnosticChain diagnostics, Map context) {
+ return ContinuationOperations
+ .validateGlobal(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateFirstOrLastInteractionFragment(
+ DiagnosticChain diagnostics, Map context) {
+ return ContinuationOperations.validateFirstOrLastInteractionFragment(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Control Flow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ControlFlowImpl
+ extends ActivityEdgeImpl
+ implements ControlFlow {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ControlFlowImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getControlFlow();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Control Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ControlNodeImpl
+ extends ActivityNodeImpl
+ implements ControlNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ControlNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Create Link Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CreateLinkActionImpl#getEndData <em>End Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CreateLinkActionImpl
+ extends WriteLinkActionImpl
+ implements CreateLinkAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CreateLinkActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCreateLinkAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndData createEndData() {
+ LinkEndCreationData newEndData = UMLFactory.eINSTANCE
+ .createLinkEndCreationData();
+ getEndData().add(newEndData);
+ return newEndData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEndData() {
+ List endData = (List) eVirtualGet(UMLPackage.CREATE_LINK_ACTION__END_DATA);
+ return endData != null && !endData.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociationNotAbstract(DiagnosticChain diagnostics,
+ Map context) {
+ return CreateLinkActionOperations.validateAssociationNotAbstract(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Create Link Object Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CreateLinkObjectActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CreateLinkObjectActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CreateLinkObjectActionImpl
+ extends CreateLinkActionImpl
+ implements CreateLinkObjectAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CreateLinkObjectActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCreateLinkObjectAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.CREATE_LINK_OBJECT_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociationClass(DiagnosticChain diagnostics,
+ Map context) {
+ return CreateLinkObjectActionOperations.validateAssociationClass(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOfResult(DiagnosticChain diagnostics, Map context) {
+ return CreateLinkObjectActionOperations.validateTypeOfResult(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return CreateLinkObjectActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Create Object Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl#getClassifier <em>Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.CreateObjectActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CreateObjectActionImpl
+ extends ActionImpl
+ implements CreateObjectAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CreateObjectActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCreateObjectAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetClassifier() {
+ return (Classifier) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__CLASSIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.CREATE_OBJECT_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassifierNotAbstract(DiagnosticChain diagnostics,
+ Map context) {
+ return CreateObjectActionOperations.validateClassifierNotAbstract(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassifierNotAssociationClass(
+ DiagnosticChain diagnostics, Map context) {
+ return CreateObjectActionOperations
+ .validateClassifierNotAssociationClass(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return CreateObjectActionOperations.validateSameType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return CreateObjectActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Creation Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class CreationEventImpl
+ extends EventImpl
+ implements CreationEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CreationEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getCreationEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Store Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DataStoreNodeImpl
+ extends CentralBufferNodeImpl
+ implements DataStoreNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataStoreNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Data Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DataTypeImpl#getOwnedOperations <em>Owned Operation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DataTypeImpl
+ extends ClassifierImpl
+ implements DataType {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DataTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDataType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation createOwnedOperation() {
+ Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation();
+ getOwnedOperations().add(newOwnedOperation);
+ return newOwnedOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List inherit(List inhs) {
+ return DataTypeOperations.inherit(this, inhs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return super.isSetAttributes()
+ || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedAttribute())
+ || eIsSet(UMLPackage.eINSTANCE.getDataType_OwnedOperation());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Decision Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DecisionNodeImpl#getDecisionInput <em>Decision Input</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DecisionNodeImpl
+ extends ControlNodeImpl
+ implements DecisionNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DecisionNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDecisionNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetDecisionInput() {
+ return (Behavior) eVirtualGet(UMLPackage.DECISION_NODE__DECISION_INPUT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneIncomingEdge(DiagnosticChain diagnostics,
+ Map context) {
+ return DecisionNodeOperations.validateOneIncomingEdge(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return DecisionNodeOperations.validateInputParameter(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEdges(DiagnosticChain diagnostics, Map context) {
+ return DecisionNodeOperations.validateEdges(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Dependency</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getSuppliers <em>Supplier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DependencyImpl#getClients <em>Client</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DependencyImpl
+ extends PackageableElementImpl
+ implements Dependency {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DependencyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDependency();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return isSetSources() || isSetTargets();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return eIsSet(UMLPackage.eINSTANCE.getDependency_Client());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Deployed Artifact</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DeployedArtifactImpl
+ extends NamedElementImpl
+ implements DeployedArtifact {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeployedArtifactImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Deployment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getSuppliers <em>Supplier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getClients <em>Client</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getDeployedArtifacts <em>Deployed Artifact</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getConfigurations <em>Configuration</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentImpl#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeploymentImpl
+ extends DependencyImpl
+ implements Deployment {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeploymentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDeployment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeploymentSpecification createConfiguration() {
+ DeploymentSpecification newConfiguration = UMLFactory.eINSTANCE
+ .createDeploymentSpecification();
+ getConfigurations().add(newConfiguration);
+ return newConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeploymentTarget getLocation() {
+ if (eContainerFeatureID != UMLPackage.DEPLOYMENT__LOCATION)
+ return null;
+ return (DeploymentTarget) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getDeployment_DeployedArtifact());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getDeployment_Configuration());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Deployment Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl#getDeploymentLocation <em>Deployment Location</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl#getExecutionLocation <em>Execution Location</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentSpecificationImpl#getDeployment <em>Deployment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DeploymentSpecificationImpl
+ extends ArtifactImpl
+ implements DeploymentSpecification {
+
+ /**
+ * The default value of the '{@link #getDeploymentLocation() <em>Deployment Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDeploymentLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEPLOYMENT_LOCATION_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getExecutionLocation() <em>Execution Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExecutionLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String EXECUTION_LOCATION_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeploymentSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDeploymentSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDeploymentLocation() {
+ String deploymentLocation = (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT_LOCATION);
+ return deploymentLocation == null
+ ? DEPLOYMENT_LOCATION_EDEFAULT
+ : deploymentLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getExecutionLocation() {
+ String executionLocation = (String) eVirtualGet(UMLPackage.DEPLOYMENT_SPECIFICATION__EXECUTION_LOCATION);
+ return executionLocation == null
+ ? EXECUTION_LOCATION_EDEFAULT
+ : executionLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Deployment getDeployment() {
+ if (eContainerFeatureID != UMLPackage.DEPLOYMENT_SPECIFICATION__DEPLOYMENT)
+ return null;
+ return (Deployment) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeployedElements(DiagnosticChain diagnostics,
+ Map context) {
+ return DeploymentSpecificationOperations.validateDeployedElements(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeploymentTarget(DiagnosticChain diagnostics,
+ Map context) {
+ return DeploymentSpecificationOperations.validateDeploymentTarget(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Deployment Target</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getDeployments <em>Deployment</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DeploymentTargetImpl#getDeployedElements <em>Deployed Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DeploymentTargetImpl
+ extends NamedElementImpl
+ implements DeploymentTarget {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeploymentTargetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDeploymentTarget();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Deployment createDeployment() {
+ Deployment newDeployment = UMLFactory.eINSTANCE.createDeployment();
+ getDeployments().add(newDeployment);
+ return newDeployment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Destroy Link Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DestroyLinkActionImpl#getEndData <em>End Data</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DestroyLinkActionImpl
+ extends WriteLinkActionImpl
+ implements DestroyLinkAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DestroyLinkActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDestroyLinkAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndData createEndData() {
+ LinkEndDestructionData newEndData = UMLFactory.eINSTANCE
+ .createLinkEndDestructionData();
+ getEndData().add(newEndData);
+ return newEndData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEndData() {
+ List endData = (List) eVirtualGet(UMLPackage.DESTROY_LINK_ACTION__END_DATA);
+ return endData != null && !endData.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Destroy Object Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#isDestroyLinks <em>Is Destroy Links</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#isDestroyOwnedObjects <em>Is Destroy Owned Objects</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DestroyObjectActionImpl#getTarget <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DestroyObjectActionImpl
+ extends ActionImpl
+ implements DestroyObjectAction {
+
+ /**
+ * The default value of the '{@link #isDestroyLinks() <em>Is Destroy Links</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDestroyLinks()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DESTROY_LINKS_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDestroyLinks() <em>Is Destroy Links</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDestroyLinks()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DESTROY_LINKS_EFLAG = 1 << 9;
+
+ /**
+ * The default value of the '{@link #isDestroyOwnedObjects() <em>Is Destroy Owned Objects</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDestroyOwnedObjects()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DESTROY_OWNED_OBJECTS_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDestroyOwnedObjects() <em>Is Destroy Owned Objects</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDestroyOwnedObjects()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DESTROY_OWNED_OBJECTS_EFLAG = 1 << 10;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DestroyObjectActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDestroyObjectAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDestroyLinks() {
+ return (eFlags & IS_DESTROY_LINKS_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDestroyOwnedObjects() {
+ return (eFlags & IS_DESTROY_OWNED_OBJECTS_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getTarget() {
+ InputPin target = (InputPin) eVirtualGet(UMLPackage.DESTROY_OBJECT_ACTION__TARGET);
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget(EClass eClass) {
+ InputPin newTarget = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget() {
+ InputPin newTarget = UMLFactory.eINSTANCE.createInputPin();
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return DestroyObjectActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoType(DiagnosticChain diagnostics, Map context) {
+ return DestroyObjectActionOperations.validateNoType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Destruction Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DestructionEventImpl
+ extends EventImpl
+ implements DestructionEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DestructionEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDestructionEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Device</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class DeviceImpl
+ extends NodeImpl
+ implements Device {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DeviceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Directed Relationship</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DirectedRelationshipImpl#getTargets <em>Target</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class DirectedRelationshipImpl
+ extends RelationshipImpl
+ implements DirectedRelationship {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DirectedRelationshipImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDirectedRelationship();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return super.isSetRelatedElements() || isSetSources() || isSetTargets();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Duration Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationConstraintImpl#getSpecification <em>Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DurationConstraintImpl
+ extends IntervalConstraintImpl
+ implements DurationConstraint {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DurationConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDurationConstraint();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getSpecification() {
+ ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.DURATION_CONSTRAINT__SPECIFICATION);
+ return specification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createSpecification(EClass eClass) {
+ ValueSpecification newSpecification = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setSpecification(newSpecification);
+ return newSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpecification() {
+ return eVirtualGet(UMLPackage.DURATION_CONSTRAINT__SPECIFICATION) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Duration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationImpl#isFirstTime <em>First Time</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationImpl#getEvents <em>Event</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DurationImpl
+ extends ValueSpecificationImpl
+ implements Duration {
+
+ /**
+ * The default value of the '{@link #isFirstTime() <em>First Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFirstTime()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FIRST_TIME_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isFirstTime() <em>First Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFirstTime()
+ * @generated
+ * @ordered
+ */
+ protected static final int FIRST_TIME_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DurationImpl() {
+ super();
+ eFlags |= FIRST_TIME_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDuration();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFirstTime() {
+ return (eFlags & FIRST_TIME_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Duration Interval</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl#getMin <em>Min</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationIntervalImpl#getMax <em>Max</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DurationIntervalImpl
+ extends IntervalImpl
+ implements DurationInterval {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DurationIntervalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDurationInterval();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetMin() {
+ return (ValueSpecification) eVirtualGet(UMLPackage.DURATION_INTERVAL__MIN);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMin() {
+ return eVirtualGet(UMLPackage.DURATION_INTERVAL__MIN) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetMax() {
+ return (ValueSpecification) eVirtualGet(UMLPackage.DURATION_INTERVAL__MAX);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMax() {
+ return eVirtualGet(UMLPackage.DURATION_INTERVAL__MAX) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Duration Observation Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationObservationActionImpl#getDuration <em>Duration</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.DurationObservationActionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class DurationObservationActionImpl
+ extends WriteStructuralFeatureActionImpl
+ implements DurationObservationAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected DurationObservationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getDurationObservationAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getValue() {
+ InputPin value = (InputPin) eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VALUE);
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue(EClass eClass) {
+ InputPin newValue = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue() {
+ InputPin newValue = UMLFactory.eINSTANCE.createInputPin();
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetValue() {
+ return eVirtualGet(UMLPackage.DURATION_OBSERVATION_ACTION__VALUE) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputValueDuration(DiagnosticChain diagnostics,
+ Map context) {
+ return DurationObservationActionOperations.validateInputValueDuration(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImpl#getOwnedComments <em>Owned Comment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ElementImpl
+ extends EModelElementImpl
+ implements Element {
+
+ /**
+ * An array of objects representing the values of non-primitive features.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Object[] eVirtualValues = null;
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits0 = 0;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Comment createOwnedComment() {
+ Comment newOwnedComment = UMLFactory.eINSTANCE.createComment();
+ getOwnedComments().add(newOwnedComment);
+ return newOwnedComment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotOwnSelf(DiagnosticChain diagnostics, Map context) {
+ return ElementOperations.validateNotOwnSelf(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHasOwner(DiagnosticChain diagnostics, Map context) {
+ return ElementOperations.validateHasOwner(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean mustBeOwned() {
+ return ElementOperations.mustBeOwned(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Object[] eVirtualValues() {
+ return eVirtualValues;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualValues(Object[] newValues) {
+ eVirtualValues = newValues;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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 '<em><b>Element</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Element</b></em>'.
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return eIsSet(UMLPackage.eINSTANCE.getElement_OwnedComment());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element getOwner() {
+ Element owner = basicGetOwner();
+ return owner == null
+ ? null
+ : (Element) eResolveProxy((InternalEObject) owner);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Element Import</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getAlias <em>Alias</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getImportedElement <em>Imported Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ElementImportImpl#getImportingNamespace <em>Importing Namespace</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ElementImportImpl
+ extends DirectedRelationshipImpl
+ implements ElementImport {
+
+ /**
+ * The default value of the '{@link #getVisibility() <em>Visibility</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisibility()
+ * @generated
+ * @ordered
+ */
+ protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC_LITERAL;
+
+ /**
+ * The default value of the '{@link #getAlias() <em>Alias</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAlias()
+ * @generated
+ * @ordered
+ */
+ protected static final String ALIAS_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ElementImportImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getElementImport();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.ELEMENT_IMPORT__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getAlias() {
+ String alias = (String) eVirtualGet(UMLPackage.ELEMENT_IMPORT__ALIAS);
+ return alias == null
+ ? ALIAS_EDEFAULT
+ : alias;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageableElement basicGetImportedElement() {
+ return (PackageableElement) eVirtualGet(UMLPackage.ELEMENT_IMPORT__IMPORTED_ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace getImportingNamespace() {
+ if (eContainerFeatureID != UMLPackage.ELEMENT_IMPORT__IMPORTING_NAMESPACE)
+ return null;
+ return (Namespace) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVisibilityPublicOrPrivate(
+ DiagnosticChain diagnostics, Map context) {
+ return ElementImportOperations.validateVisibilityPublicOrPrivate(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVisibilityOrPrivate(DiagnosticChain diagnostics,
+ Map context) {
+ return ElementImportOperations.validateVisibilityOrPrivate(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateImportedElementIsPublic(DiagnosticChain diagnostics,
+ Map context) {
+ return ElementImportOperations.validateImportedElementIsPublic(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return ElementImportOperations.getName(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getElementImport_ImportedElement());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return super.isSetSources()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getElementImport_ImportingNamespace());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Namespace importingNamespace = getImportingNamespace();
+ if (importingNamespace != null) {
+ return importingNamespace;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Encapsulated Classifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.EncapsulatedClassifierImpl#getOwnedPorts <em>Owned Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class EncapsulatedClassifierImpl
+ extends StructuredClassifierImpl
+ implements EncapsulatedClassifier {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EncapsulatedClassifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getEncapsulatedClassifier();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Enumeration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.EnumerationImpl#getOwnedLiterals <em>Owned Literal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EnumerationImpl
+ extends DataTypeImpl
+ implements Enumeration {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EnumerationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getEnumeration();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EnumerationLiteral createOwnedLiteral() {
+ EnumerationLiteral newOwnedLiteral = UMLFactory.eINSTANCE
+ .createEnumerationLiteral();
+ getOwnedLiterals().add(newOwnedLiteral);
+ return newOwnedLiteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Enumeration Literal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.EnumerationLiteralImpl#getEnumeration <em>Enumeration</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EnumerationLiteralImpl
+ extends InstanceSpecificationImpl
+ implements EnumerationLiteral {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EnumerationLiteralImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getEnumerationLiteral();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Enumeration getEnumeration() {
+ if (eContainerFeatureID != UMLPackage.ENUMERATION_LITERAL__ENUMERATION)
+ return null;
+ return (Enumeration) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Enumeration enumeration = getEnumeration();
+ if (enumeration != null) {
+ return enumeration;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class EventImpl
+ extends PackageableElementImpl
+ implements Event {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Exception Handler</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getHandlerBody <em>Handler Body</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getExceptionInput <em>Exception Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getExceptionTypes <em>Exception Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExceptionHandlerImpl#getProtectedNode <em>Protected Node</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExceptionHandlerImpl
+ extends ElementImpl
+ implements ExceptionHandler {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExceptionHandlerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExceptionHandler();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutableNode basicGetHandlerBody() {
+ return (ExecutableNode) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__HANDLER_BODY);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectNode basicGetExceptionInput() {
+ return (ObjectNode) eVirtualGet(UMLPackage.EXCEPTION_HANDLER__EXCEPTION_INPUT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutableNode getProtectedNode() {
+ if (eContainerFeatureID != UMLPackage.EXCEPTION_HANDLER__PROTECTED_NODE)
+ return null;
+ return (ExecutableNode) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateExceptionBody(DiagnosticChain diagnostics,
+ Map context) {
+ return ExceptionHandlerOperations.validateExceptionBody(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultPins(DiagnosticChain diagnostics, Map context) {
+ return ExceptionHandlerOperations.validateResultPins(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneInput(DiagnosticChain diagnostics, Map context) {
+ return ExceptionHandlerOperations.validateOneInput(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEdgeSourceTarget(DiagnosticChain diagnostics,
+ Map context) {
+ return ExceptionHandlerOperations.validateEdgeSourceTarget(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ ExecutableNode protectedNode = getProtectedNode();
+ if (protectedNode != null) {
+ return protectedNode;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Executable Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExecutableNodeImpl#getHandlers <em>Handler</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ExecutableNodeImpl
+ extends ActivityNodeImpl
+ implements ExecutableNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExecutableNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExecutableNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExceptionHandler createHandler() {
+ ExceptionHandler newHandler = UMLFactory.eINSTANCE
+ .createExceptionHandler();
+ getHandlers().add(newHandler);
+ return newHandler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Execution Environment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ExecutionEnvironmentImpl
+ extends NodeImpl
+ implements ExecutionEnvironment {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExecutionEnvironmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Execution Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ExecutionEventImpl
+ extends EventImpl
+ implements ExecutionEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExecutionEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Execution Occurrence Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl#getExecution <em>Execution</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExecutionOccurrenceSpecificationImpl#getEvent <em>Event</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExecutionOccurrenceSpecificationImpl
+ extends OccurrenceSpecificationImpl
+ implements ExecutionOccurrenceSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExecutionOccurrenceSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExecutionOccurrenceSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutionSpecification basicGetExecution() {
+ return (ExecutionSpecification) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EXECUTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent() {
+ return (Event) eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEvent() {
+ return eVirtualGet(UMLPackage.EXECUTION_OCCURRENCE_SPECIFICATION__EVENT) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Execution Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl#getStart <em>Start</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExecutionSpecificationImpl#getFinish <em>Finish</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ExecutionSpecificationImpl
+ extends InteractionFragmentImpl
+ implements ExecutionSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExecutionSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExecutionSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutionOccurrenceSpecification basicGetStart() {
+ return (ExecutionOccurrenceSpecification) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__START);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutionOccurrenceSpecification basicGetFinish() {
+ return (ExecutionOccurrenceSpecification) eVirtualGet(UMLPackage.EXECUTION_SPECIFICATION__FINISH);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameLifeline(DiagnosticChain diagnostics, Map context) {
+ return ExecutionSpecificationOperations.validateSameLifeline(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expansion Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpansionNodeImpl#getRegionAsOutput <em>Region As Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpansionNodeImpl#getRegionAsInput <em>Region As Input</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExpansionNodeImpl
+ extends ObjectNodeImpl
+ implements ExpansionNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExpansionNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExpansionNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpansionRegion basicGetRegionAsOutput() {
+ return (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_OUTPUT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpansionRegion basicGetRegionAsInput() {
+ return (ExpansionRegion) eVirtualGet(UMLPackage.EXPANSION_NODE__REGION_AS_INPUT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expansion Region</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl#getMode <em>Mode</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl#getInputElements <em>Input Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpansionRegionImpl#getOutputElements <em>Output Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExpansionRegionImpl
+ extends StructuredActivityNodeImpl
+ implements ExpansionRegion {
+
+ /**
+ * The default value of the '{@link #getMode() <em>Mode</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMode()
+ * @generated
+ * @ordered
+ */
+ protected static final ExpansionKind MODE_EDEFAULT = ExpansionKind.PARALLEL_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExpansionRegionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExpansionRegion();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpansionKind getMode() {
+ ExpansionKind mode = (ExpansionKind) eVirtualGet(UMLPackage.EXPANSION_REGION__MODE);
+ return mode == null
+ ? MODE_EDEFAULT
+ : mode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateExpansionNodes(DiagnosticChain diagnostics,
+ Map context) {
+ return ExpansionRegionOperations.validateExpansionNodes(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl#getSymbol <em>Symbol</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExpressionImpl#getOperands <em>Operand</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExpressionImpl
+ extends ValueSpecificationImpl
+ implements Expression {
+
+ /**
+ * The default value of the '{@link #getSymbol() <em>Symbol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSymbol()
+ * @generated
+ * @ordered
+ */
+ protected static final String SYMBOL_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExpression();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSymbol() {
+ String symbol = (String) eVirtualGet(UMLPackage.EXPRESSION__SYMBOL);
+ return symbol == null
+ ? SYMBOL_EDEFAULT
+ : symbol;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createOperand(EClass eClass) {
+ ValueSpecification newOperand = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getOperands().add(newOperand);
+ return newOperand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extend</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getExtendedCase <em>Extended Case</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getCondition <em>Condition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getExtensionLocations <em>Extension Location</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtendImpl#getExtension <em>Extension</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtendImpl
+ extends NamedElementImpl
+ implements Extend {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtendImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExtend();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase basicGetExtendedCase() {
+ return (UseCase) eVirtualGet(UMLPackage.EXTEND__EXTENDED_CASE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getCondition() {
+ Constraint condition = (Constraint) eVirtualGet(UMLPackage.EXTEND__CONDITION);
+ return condition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createCondition(EClass eClass) {
+ Constraint newCondition = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setCondition(newCondition);
+ return newCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createCondition() {
+ Constraint newCondition = UMLFactory.eINSTANCE.createConstraint();
+ setCondition(newCondition);
+ return newCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase getExtension() {
+ if (eContainerFeatureID != UMLPackage.EXTEND__EXTENSION)
+ return null;
+ return (UseCase) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateExtensionPoints(DiagnosticChain diagnostics,
+ Map context) {
+ return ExtendOperations.validateExtensionPoints(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return isSetSources() || isSetTargets();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return eIsSet(UMLPackage.eINSTANCE.getExtend_Extension());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return eIsSet(UMLPackage.eINSTANCE.getExtend_ExtendedCase());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extension End</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtensionEndImpl#getLower <em>Lower</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtensionEndImpl
+ extends PropertyImpl
+ implements ExtensionEnd {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtensionEndImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExtensionEnd();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return (Type) eVirtualGet(UMLPackage.EXTENSION_END__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetType() {
+ return eVirtualGet(UMLPackage.EXTENSION_END__TYPE) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetLower() {
+ return getLower() != LOWER_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ExtensionEndOperations.validateMultiplicity(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAggregation(DiagnosticChain diagnostics, Map context) {
+ return ExtensionEndOperations.validateAggregation(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int lowerBound() {
+ return ExtensionEndOperations.lowerBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extension</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl#getOwnedEnds <em>Owned End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl#isRequired <em>Is Required</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtensionImpl#getMetaclass <em>Metaclass</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtensionImpl
+ extends AssociationImpl
+ implements Extension {
+
+ /**
+ * The default value of the '{@link #isRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRequired()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REQUIRED_EDEFAULT = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtensionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExtension();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedEnds() {
+ List ownedEnd = (List) eVirtualGet(UMLPackage.EXTENSION__OWNED_END);
+ return ownedEnd != null && !ownedEnd.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNonOwnedEnd(DiagnosticChain diagnostics, Map context) {
+ return ExtensionOperations.validateNonOwnedEnd(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIsBinary(DiagnosticChain diagnostics, Map context) {
+ return ExtensionOperations.validateIsBinary(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property metaclassEnd() {
+ return ExtensionOperations.metaclassEnd(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class metaclass() {
+ return ExtensionOperations.metaclass(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Extension Point</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ExtensionPointImpl#getUseCase <em>Use Case</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ExtensionPointImpl
+ extends RedefinableElementImpl
+ implements ExtensionPoint {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtensionPointImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getExtensionPoint();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase getUseCase() {
+ if (eContainerFeatureID != UMLPackage.EXTENSION_POINT__USE_CASE)
+ return null;
+ return (UseCase) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMustHaveName(DiagnosticChain diagnostics, Map context) {
+ return ExtensionPointOperations.validateMustHaveName(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Feature</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.FeatureImpl#getFeaturingClassifiers <em>Featuring Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.FeatureImpl#isStatic <em>Is Static</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FeatureImpl
+ extends RedefinableElementImpl
+ implements Feature {
+
+ /**
+ * The default value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STATIC_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isStatic() <em>Is Static</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStatic()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_STATIC_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FeatureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getFeature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStatic() {
+ return (eFlags & IS_STATIC_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Final Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FinalNodeImpl
+ extends ControlNodeImpl
+ implements FinalNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FinalNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getFinalNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Final State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class FinalStateImpl
+ extends StateImpl
+ implements FinalState {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FinalStateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getFinalState();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoOutgoingTransitions(DiagnosticChain diagnostics,
+ Map context) {
+ return FinalStateOperations.validateNoOutgoingTransitions(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoRegions(DiagnosticChain diagnostics, Map context) {
+ return FinalStateOperations.validateNoRegions(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotReferenceSubmachine(
+ DiagnosticChain diagnostics, Map context) {
+ return FinalStateOperations.validateCannotReferenceSubmachine(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoEntryBehavior(DiagnosticChain diagnostics,
+ Map context) {
+ return FinalStateOperations.validateNoEntryBehavior(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoExitbehavior(DiagnosticChain diagnostics,
+ Map context) {
+ return FinalStateOperations.validateNoExitbehavior(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Flow Final Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class FlowFinalNodeImpl
+ extends FinalNodeImpl
+ implements FlowFinalNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FlowFinalNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Fork Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class ForkNodeImpl
+ extends ControlNodeImpl
+ implements ForkNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ForkNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getForkNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneIncomingEdge(DiagnosticChain diagnostics,
+ Map context) {
+ return ForkNodeOperations.validateOneIncomingEdge(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Function Behavior</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class FunctionBehaviorImpl
+ extends OpaqueBehaviorImpl
+ implements FunctionBehavior {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FunctionBehaviorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getFunctionBehavior();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneOutputParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return FunctionBehaviorOperations.validateOneOutputParameter(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Gate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class GateImpl
+ extends MessageEndImpl
+ implements Gate {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getGate();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMessagesActualGate(DiagnosticChain diagnostics,
+ Map context) {
+ return GateOperations.validateMessagesActualGate(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>General Ordering</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl#getBefore <em>Before</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralOrderingImpl#getAfter <em>After</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GeneralOrderingImpl
+ extends NamedElementImpl
+ implements GeneralOrdering {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneralOrderingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getGeneralOrdering();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OccurrenceSpecification basicGetBefore() {
+ return (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__BEFORE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OccurrenceSpecification basicGetAfter() {
+ return (OccurrenceSpecification) eVirtualGet(UMLPackage.GENERAL_ORDERING__AFTER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generalization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#isSubstitutable <em>Is Substitutable</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getGeneral <em>General</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getGeneralizationSets <em>Generalization Set</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationImpl#getSpecific <em>Specific</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GeneralizationImpl
+ extends DirectedRelationshipImpl
+ implements Generalization {
+
+ /**
+ * The default value of the '{@link #isSubstitutable() <em>Is Substitutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSubstitutable()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SUBSTITUTABLE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isSubstitutable() <em>Is Substitutable</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSubstitutable()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_SUBSTITUTABLE_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneralizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getGeneralization();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSubstitutable() {
+ return (eFlags & IS_SUBSTITUTABLE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetGeneral() {
+ return (Classifier) eVirtualGet(UMLPackage.GENERALIZATION__GENERAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getSpecific() {
+ if (eContainerFeatureID != UMLPackage.GENERALIZATION__SPECIFIC)
+ return null;
+ return (Classifier) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGeneralizationSameClassifier(
+ DiagnosticChain diagnostics, Map context) {
+ return GeneralizationOperations.validateGeneralizationSameClassifier(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getGeneralization_General());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return super.isSetSources()
+ || eIsSet(UMLPackage.eINSTANCE.getGeneralization_Specific());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Classifier specific = getSpecific();
+ if (specific != null) {
+ return specific;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Generalization Set</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#isCovering <em>Is Covering</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#isDisjoint <em>Is Disjoint</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#getPowertype <em>Powertype</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.GeneralizationSetImpl#getGeneralizations <em>Generalization</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GeneralizationSetImpl
+ extends PackageableElementImpl
+ implements GeneralizationSet {
+
+ /**
+ * The default value of the '{@link #isCovering() <em>Is Covering</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCovering()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_COVERING_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isCovering() <em>Is Covering</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCovering()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_COVERING_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isDisjoint() <em>Is Disjoint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDisjoint()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DISJOINT_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDisjoint() <em>Is Disjoint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDisjoint()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DISJOINT_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneralizationSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getGeneralizationSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCovering() {
+ return (eFlags & IS_COVERING_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDisjoint() {
+ return (eFlags & IS_DISJOINT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetPowertype() {
+ return (Classifier) eVirtualGet(UMLPackage.GENERALIZATION_SET__POWERTYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGeneralizationSameClassifier(
+ DiagnosticChain diagnostics, Map context) {
+ return GeneralizationSetOperations
+ .validateGeneralizationSameClassifier(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMapsToGeneralizationSet(DiagnosticChain diagnostics,
+ Map context) {
+ return GeneralizationSetOperations.validateMapsToGeneralizationSet(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Image</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ImageImpl
+ extends EObjectImpl
+ implements Image {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ImageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getImage();
+ }
+
+ /**
+ * Retrieves the cache adapter for this '<em><b>Image</b></em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return The cache adapter for this '<em><b>Image</b></em>'.
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Include</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getAddition <em>Addition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IncludeImpl#getIncludingCase <em>Including Case</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IncludeImpl
+ extends NamedElementImpl
+ implements Include {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IncludeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInclude();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase basicGetAddition() {
+ return (UseCase) eVirtualGet(UMLPackage.INCLUDE__ADDITION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase getIncludingCase() {
+ if (eContainerFeatureID != UMLPackage.INCLUDE__INCLUDING_CASE)
+ return null;
+ return (UseCase) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return isSetSources() || isSetTargets();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return eIsSet(UMLPackage.eINSTANCE.getInclude_IncludingCase());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Information Flow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRelatedElements <em>Related Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizations <em>Realization</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getConveyeds <em>Conveyed</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getInformationSources <em>Information Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getInformationTargets <em>Information Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizingActivityEdges <em>Realizing Activity Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizingConnectors <em>Realizing Connector</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationFlowImpl#getRealizingMessages <em>Realizing Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InformationFlowImpl
+ extends PackageableElementImpl
+ implements InformationFlow {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InformationFlowImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInformationFlow();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSourcesAndTargetsKind(DiagnosticChain diagnostics,
+ Map context) {
+ return InformationFlowOperations.validateSourcesAndTargetsKind(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMustConform(DiagnosticChain diagnostics, Map context) {
+ return InformationFlowOperations.validateMustConform(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConveyClassifiers(DiagnosticChain diagnostics,
+ Map context) {
+ return InformationFlowOperations.validateConveyClassifiers(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRelatedElements() {
+ return isSetSources() || isSetTargets();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return eIsSet(UMLPackage.eINSTANCE
+ .getInformationFlow_InformationSource());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Information Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InformationItemImpl#getRepresenteds <em>Represented</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InformationItemImpl
+ extends ClassifierImpl
+ implements InformationItem {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InformationItemImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInformationItem();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSourcesAndTargets(DiagnosticChain diagnostics,
+ Map context) {
+ return InformationItemOperations.validateSourcesAndTargets(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHasNo(DiagnosticChain diagnostics, Map context) {
+ return InformationItemOperations.validateHasNo(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotInstantiable(DiagnosticChain diagnostics,
+ Map context) {
+ return InformationItemOperations.validateNotInstantiable(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Initial Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class InitialNodeImpl
+ extends ControlNodeImpl
+ implements InitialNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InitialNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInitialNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoIncomingEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return InitialNodeOperations.validateNoIncomingEdges(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Input Pin</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class InputPinImpl
+ extends PinImpl
+ implements InputPin {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InputPinImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getClassifiers <em>Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getSpecification <em>Specification</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceSpecificationImpl#getSlots <em>Slot</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstanceSpecificationImpl
+ extends DeploymentTargetImpl
+ implements InstanceSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInstanceSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.INSTANCE_SPECIFICATION__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVisibility() {
+ return eVirtualIsSet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY)
+ && eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__VISIBILITY) != VISIBILITY_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getSpecification() {
+ ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.INSTANCE_SPECIFICATION__SPECIFICATION);
+ return specification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createSpecification(EClass eClass) {
+ ValueSpecification newSpecification = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setSpecification(newSpecification);
+ return newSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Slot createSlot() {
+ Slot newSlot = UMLFactory.eINSTANCE.createSlot();
+ getSlots().add(newSlot);
+ return newSlot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDefiningFeature(DiagnosticChain diagnostics,
+ Map context) {
+ return InstanceSpecificationOperations.validateDefiningFeature(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStructuralFeature(DiagnosticChain diagnostics,
+ Map context) {
+ return InstanceSpecificationOperations.validateStructuralFeature(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeploymentTarget(DiagnosticChain diagnostics,
+ Map context) {
+ return InstanceSpecificationOperations.validateDeploymentTarget(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeploymentArtifact(DiagnosticChain diagnostics,
+ Map context) {
+ return InstanceSpecificationOperations.validateDeploymentArtifact(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getParameterableElement_OwningTemplateParameter());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Instance Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InstanceValueImpl#getInstance <em>Instance</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InstanceValueImpl
+ extends ValueSpecificationImpl
+ implements InstanceValue {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InstanceValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInstanceValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification basicGetInstance() {
+ return (InstanceSpecification) eVirtualGet(UMLPackage.INSTANCE_VALUE__INSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl#getMinint <em>Minint</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionConstraintImpl#getMaxint <em>Maxint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InteractionConstraintImpl
+ extends ConstraintImpl
+ implements InteractionConstraint {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInteractionConstraint();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getMinint() {
+ ValueSpecification minint = (ValueSpecification) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MININT);
+ return minint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createMinint(EClass eClass) {
+ ValueSpecification newMinint = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setMinint(newMinint);
+ return newMinint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getMaxint() {
+ ValueSpecification maxint = (ValueSpecification) eVirtualGet(UMLPackage.INTERACTION_CONSTRAINT__MAXINT);
+ return maxint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createMaxint(EClass eClass) {
+ ValueSpecification newMaxint = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setMaxint(newMaxint);
+ return newMaxint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDynamicVariables(DiagnosticChain diagnostics,
+ Map context) {
+ return InteractionConstraintOperations.validateDynamicVariables(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGlobalData(DiagnosticChain diagnostics, Map context) {
+ return InteractionConstraintOperations.validateGlobalData(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMinintMaxint(DiagnosticChain diagnostics, Map context) {
+ return InteractionConstraintOperations.validateMinintMaxint(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMinint(DiagnosticChain diagnostics, Map context) {
+ return InteractionConstraintOperations.validateMinint(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMaxint(DiagnosticChain diagnostics, Map context) {
+ return InteractionConstraintOperations.validateMaxint(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMaxintGreaterEqualMinint(
+ DiagnosticChain diagnostics, Map context) {
+ return InteractionConstraintOperations
+ .validateMaxintGreaterEqualMinint(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction Fragment</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getCovereds <em>Covered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getGeneralOrderings <em>General Ordering</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getEnclosingInteraction <em>Enclosing Interaction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionFragmentImpl#getEnclosingOperand <em>Enclosing Operand</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class InteractionFragmentImpl
+ extends NamedElementImpl
+ implements InteractionFragment {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionFragmentImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInteractionFragment();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneralOrdering createGeneralOrdering() {
+ GeneralOrdering newGeneralOrdering = UMLFactory.eINSTANCE
+ .createGeneralOrdering();
+ getGeneralOrderings().add(newGeneralOrdering);
+ return newGeneralOrdering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction getEnclosingInteraction() {
+ if (eContainerFeatureID != UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_INTERACTION)
+ return null;
+ return (Interaction) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionOperand getEnclosingOperand() {
+ if (eContainerFeatureID != UMLPackage.INTERACTION_FRAGMENT__ENCLOSING_OPERAND)
+ return null;
+ return (InteractionOperand) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getInteractionFragment_GeneralOrdering());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ InteractionOperand enclosingOperand = getEnclosingOperand();
+ if (enclosingOperand != null) {
+ return enclosingOperand;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getCovereds <em>Covered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getGeneralOrderings <em>General Ordering</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getEnclosingInteraction <em>Enclosing Interaction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getEnclosingOperand <em>Enclosing Operand</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getLifelines <em>Lifeline</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getFragments <em>Fragment</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getActions <em>Action</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getFormalGates <em>Formal Gate</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionImpl#getMessages <em>Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InteractionImpl
+ extends BehaviorImpl
+ implements Interaction {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits2 = 0;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInteraction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneralOrdering createGeneralOrdering() {
+ GeneralOrdering newGeneralOrdering = UMLFactory.eINSTANCE
+ .createGeneralOrdering();
+ getGeneralOrderings().add(newGeneralOrdering);
+ return newGeneralOrdering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction getEnclosingInteraction() {
+ if (eContainerFeatureID != UMLPackage.INTERACTION__ENCLOSING_INTERACTION)
+ return null;
+ return (Interaction) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionOperand getEnclosingOperand() {
+ if (eContainerFeatureID != UMLPackage.INTERACTION__ENCLOSING_OPERAND)
+ return null;
+ return (InteractionOperand) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Lifeline createLifeline() {
+ Lifeline newLifeline = UMLFactory.eINSTANCE.createLifeline();
+ getLifelines().add(newLifeline);
+ return newLifeline;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionFragment createFragment(EClass eClass) {
+ InteractionFragment newFragment = (InteractionFragment) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getFragments().add(newFragment);
+ return newFragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createAction(EClass eClass) {
+ Action newAction = (Action) eClass.getEPackage().getEFactoryInstance()
+ .create(eClass);
+ getActions().add(newAction);
+ return newAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createAction() {
+ Action newAction = UMLFactory.eINSTANCE.createAction();
+ getActions().add(newAction);
+ return newAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Gate createFormalGate() {
+ Gate newFormalGate = UMLFactory.eINSTANCE.createGate();
+ getFormalGates().add(newFormalGate);
+ return newFormalGate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Message createMessage() {
+ Message newMessage = UMLFactory.eINSTANCE.createMessage();
+ getMessages().add(newMessage);
+ return newMessage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ case 2 :
+ return eVirtualIndexBits2;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getInteractionFragment_GeneralOrdering())
+ || eIsSet(UMLPackage.eINSTANCE.getInteraction_Action());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ InteractionOperand enclosingOperand = getEnclosingOperand();
+ if (enclosingOperand != null) {
+ return enclosingOperand;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getInteractionFragment_EnclosingOperand());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction Operand</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getCovereds <em>Covered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getGeneralOrderings <em>General Ordering</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getEnclosingInteraction <em>Enclosing Interaction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getEnclosingOperand <em>Enclosing Operand</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getGuard <em>Guard</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionOperandImpl#getFragments <em>Fragment</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InteractionOperandImpl
+ extends NamespaceImpl
+ implements InteractionOperand {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionOperandImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInteractionOperand();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneralOrdering createGeneralOrdering() {
+ GeneralOrdering newGeneralOrdering = UMLFactory.eINSTANCE
+ .createGeneralOrdering();
+ getGeneralOrderings().add(newGeneralOrdering);
+ return newGeneralOrdering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction getEnclosingInteraction() {
+ if (eContainerFeatureID != UMLPackage.INTERACTION_OPERAND__ENCLOSING_INTERACTION)
+ return null;
+ return (Interaction) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionOperand getEnclosingOperand() {
+ if (eContainerFeatureID != UMLPackage.INTERACTION_OPERAND__ENCLOSING_OPERAND)
+ return null;
+ return (InteractionOperand) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionConstraint getGuard() {
+ InteractionConstraint guard = (InteractionConstraint) eVirtualGet(UMLPackage.INTERACTION_OPERAND__GUARD);
+ return guard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionConstraint createGuard() {
+ InteractionConstraint newGuard = UMLFactory.eINSTANCE
+ .createInteractionConstraint();
+ setGuard(newGuard);
+ return newGuard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionFragment createFragment(EClass eClass) {
+ InteractionFragment newFragment = (InteractionFragment) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getFragments().add(newFragment);
+ return newFragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGuardDirectlyPrior(DiagnosticChain diagnostics,
+ Map context) {
+ return InteractionOperandOperations.validateGuardDirectlyPrior(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGuardContainReferences(DiagnosticChain diagnostics,
+ Map context) {
+ return InteractionOperandOperations.validateGuardContainReferences(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getInteractionFragment_GeneralOrdering())
+ || eIsSet(UMLPackage.eINSTANCE.getInteractionOperand_Guard());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ InteractionOperand enclosingOperand = getEnclosingOperand();
+ if (enclosingOperand != null) {
+ return enclosingOperand;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getInteractionFragment_EnclosingOperand());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interaction Use</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getRefersTo <em>Refers To</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getActualGates <em>Actual Gate</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InteractionUseImpl#getArguments <em>Argument</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InteractionUseImpl
+ extends InteractionFragmentImpl
+ implements InteractionUse {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InteractionUseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInteractionUse();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction basicGetRefersTo() {
+ return (Interaction) eVirtualGet(UMLPackage.INTERACTION_USE__REFERS_TO);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Gate createActualGate() {
+ Gate newActualGate = UMLFactory.eINSTANCE.createGate();
+ getActualGates().add(newActualGate);
+ return newActualGate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createArgument(EClass eClass) {
+ Action newArgument = (Action) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getArguments().add(newArgument);
+ return newArgument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createArgument() {
+ Action newArgument = UMLFactory.eINSTANCE.createAction();
+ getArguments().add(newArgument);
+ return newArgument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGatesMatch(DiagnosticChain diagnostics, Map context) {
+ return InteractionUseOperations.validateGatesMatch(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAllLifelines(DiagnosticChain diagnostics, Map context) {
+ return InteractionUseOperations.validateAllLifelines(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateArgumentsCorrespondToParameters(
+ DiagnosticChain diagnostics, Map context) {
+ return InteractionUseOperations
+ .validateArgumentsCorrespondToParameters(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateArgumentsAreConstants(DiagnosticChain diagnostics,
+ Map context) {
+ return InteractionUseOperations.validateArgumentsAreConstants(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interface</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getNestedClassifiers <em>Nested Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getRedefinedInterfaces <em>Redefined Interface</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedReceptions <em>Owned Reception</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getProtocol <em>Protocol</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceImpl#getOwnedOperations <em>Owned Operation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InterfaceImpl
+ extends ClassifierImpl
+ implements Interface {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InterfaceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInterface();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier createNestedClassifier(EClass eClass) {
+ Classifier newNestedClassifier = (Classifier) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getNestedClassifiers().add(newNestedClassifier);
+ return newNestedClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Reception createOwnedReception() {
+ Reception newOwnedReception = UMLFactory.eINSTANCE.createReception();
+ getOwnedReceptions().add(newOwnedReception);
+ return newOwnedReception;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolStateMachine getProtocol() {
+ ProtocolStateMachine protocol = (ProtocolStateMachine) eVirtualGet(UMLPackage.INTERFACE__PROTOCOL);
+ return protocol;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolStateMachine createProtocol() {
+ ProtocolStateMachine newProtocol = UMLFactory.eINSTANCE
+ .createProtocolStateMachine();
+ setProtocol(newProtocol);
+ return newProtocol;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation createOwnedOperation() {
+ Operation newOwnedOperation = UMLFactory.eINSTANCE.createOperation();
+ getOwnedOperations().add(newOwnedOperation);
+ return newOwnedOperation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVisibility(DiagnosticChain diagnostics, Map context) {
+ return InterfaceOperations.validateVisibility(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return super.isSetAttributes()
+ || eIsSet(UMLPackage.eINSTANCE.getInterface_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return super.isSetRedefinedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getInterface_RedefinedInterface());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interface Realization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getSuppliers <em>Supplier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getClients <em>Client</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getContract <em>Contract</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterfaceRealizationImpl#getImplementingClassifier <em>Implementing Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InterfaceRealizationImpl
+ extends RealizationImpl
+ implements InterfaceRealization {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InterfaceRealizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInterfaceRealization();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface basicGetContract() {
+ return (Interface) eVirtualGet(UMLPackage.INTERFACE_REALIZATION__CONTRACT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioredClassifier getImplementingClassifier() {
+ if (eContainerFeatureID != UMLPackage.INTERFACE_REALIZATION__IMPLEMENTING_CLASSIFIER)
+ return null;
+ return (BehavioredClassifier) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getInterfaceRealization_Contract());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interruptible Activity Region</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl#getContainedNodes <em>Contained Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl#getNodes <em>Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InterruptibleActivityRegionImpl#getInterruptingEdges <em>Interrupting Edge</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class InterruptibleActivityRegionImpl
+ extends ActivityGroupImpl
+ implements InterruptibleActivityRegion {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InterruptibleActivityRegionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInterruptibleActivityRegion();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInterruptingEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return InterruptibleActivityRegionOperations.validateInterruptingEdges(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interval Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IntervalConstraintImpl#getSpecification <em>Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IntervalConstraintImpl
+ extends ConstraintImpl
+ implements IntervalConstraint {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntervalConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getIntervalConstraint();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getSpecification() {
+ ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION);
+ return specification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createSpecification(EClass eClass) {
+ ValueSpecification newSpecification = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setSpecification(newSpecification);
+ return newSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpecification() {
+ return eVirtualGet(UMLPackage.INTERVAL_CONSTRAINT__SPECIFICATION) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interval</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IntervalImpl#getMin <em>Min</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.IntervalImpl#getMax <em>Max</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class IntervalImpl
+ extends ValueSpecificationImpl
+ implements Interval {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IntervalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInterval();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetMin() {
+ return (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL__MIN);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetMax() {
+ return (ValueSpecification) eVirtualGet(UMLPackage.INTERVAL__MAX);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Invocation Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl#getArguments <em>Argument</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.InvocationActionImpl#getOnPort <em>On Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class InvocationActionImpl
+ extends ActionImpl
+ implements InvocationAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected InvocationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getInvocationAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createArgument(EClass eClass) {
+ InputPin newArgument = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getArguments().add(newArgument);
+ return newArgument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createArgument() {
+ InputPin newArgument = UMLFactory.eINSTANCE.createInputPin();
+ getArguments().add(newArgument);
+ return newArgument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port basicGetOnPort() {
+ return (Port) eVirtualGet(UMLPackage.INVOCATION_ACTION__ON_PORT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOnPort(DiagnosticChain diagnostics, Map context) {
+ return InvocationActionOperations.validateOnPort(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Join Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl#isCombineDuplicate <em>Is Combine Duplicate</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.JoinNodeImpl#getJoinSpec <em>Join Spec</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class JoinNodeImpl
+ extends ControlNodeImpl
+ implements JoinNode {
+
+ /**
+ * The default value of the '{@link #isCombineDuplicate() <em>Is Combine Duplicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCombineDuplicate()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_COMBINE_DUPLICATE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isCombineDuplicate() <em>Is Combine Duplicate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isCombineDuplicate()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_COMBINE_DUPLICATE_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected JoinNodeImpl() {
+ super();
+ eFlags |= IS_COMBINE_DUPLICATE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getJoinNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCombineDuplicate() {
+ return (eFlags & IS_COMBINE_DUPLICATE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getJoinSpec() {
+ ValueSpecification joinSpec = (ValueSpecification) eVirtualGet(UMLPackage.JOIN_NODE__JOIN_SPEC);
+ return joinSpec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createJoinSpec(EClass eClass) {
+ ValueSpecification newJoinSpec = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setJoinSpec(newJoinSpec);
+ return newJoinSpec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneOutgoingEdge(DiagnosticChain diagnostics,
+ Map context) {
+ return JoinNodeOperations.validateOneOutgoingEdge(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIncomingObjectFlow(DiagnosticChain diagnostics,
+ Map context) {
+ return JoinNodeOperations.validateIncomingObjectFlow(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Lifeline</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getRepresents <em>Represents</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getInteraction <em>Interaction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getSelector <em>Selector</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getDecomposedAs <em>Decomposed As</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LifelineImpl#getCoveredBys <em>Covered By</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LifelineImpl
+ extends NamedElementImpl
+ implements Lifeline {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LifelineImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLifeline();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectableElement basicGetRepresents() {
+ return (ConnectableElement) eVirtualGet(UMLPackage.LIFELINE__REPRESENTS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction getInteraction() {
+ if (eContainerFeatureID != UMLPackage.LIFELINE__INTERACTION)
+ return null;
+ return (Interaction) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getSelector() {
+ ValueSpecification selector = (ValueSpecification) eVirtualGet(UMLPackage.LIFELINE__SELECTOR);
+ return selector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createSelector(EClass eClass) {
+ ValueSpecification newSelector = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setSelector(newSelector);
+ return newSelector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartDecomposition basicGetDecomposedAs() {
+ return (PartDecomposition) eVirtualGet(UMLPackage.LIFELINE__DECOMPOSED_AS);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInteractionUsesShareLifeline(
+ DiagnosticChain diagnostics, Map context) {
+ return LifelineOperations.validateInteractionUsesShareLifeline(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSelectorSpecified(DiagnosticChain diagnostics,
+ Map context) {
+ return LifelineOperations.validateSelectorSpecified(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return LifelineOperations.validateSameClassifier(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Interaction interaction = getInteraction();
+ if (interaction != null) {
+ return interaction;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getLifeline_Interaction());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl#getEndData <em>End Data</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkActionImpl#getInputValues <em>Input Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LinkActionImpl
+ extends ActionImpl
+ implements LinkAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLinkAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndData createEndData(EClass eClass) {
+ LinkEndData newEndData = (LinkEndData) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getEndData().add(newEndData);
+ return newEndData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndData createEndData() {
+ LinkEndData newEndData = UMLFactory.eINSTANCE.createLinkEndData();
+ getEndData().add(newEndData);
+ return newEndData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInputValue(EClass eClass) {
+ InputPin newInputValue = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getInputValues().add(newInputValue);
+ return newInputValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInputValue() {
+ InputPin newInputValue = UMLFactory.eINSTANCE.createInputPin();
+ getInputValues().add(newInputValue);
+ return newInputValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameAssociation(DiagnosticChain diagnostics,
+ Map context) {
+ return LinkActionOperations.validateSameAssociation(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotStatic(DiagnosticChain diagnostics, Map context) {
+ return LinkActionOperations.validateNotStatic(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSamePins(DiagnosticChain diagnostics, Map context) {
+ return LinkActionOperations
+ .validateSamePins(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association association() {
+ return LinkActionOperations.association(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link End Creation Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl#isReplaceAll <em>Is Replace All</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndCreationDataImpl#getInsertAt <em>Insert At</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkEndCreationDataImpl
+ extends LinkEndDataImpl
+ implements LinkEndCreationData {
+
+ /**
+ * The default value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REPLACE_ALL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REPLACE_ALL_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkEndCreationDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLinkEndCreationData();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReplaceAll() {
+ return (eFlags & IS_REPLACE_ALL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin basicGetInsertAt() {
+ return (InputPin) eVirtualGet(UMLPackage.LINK_END_CREATION_DATA__INSERT_AT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCreateLinkAction(DiagnosticChain diagnostics,
+ Map context) {
+ return LinkEndCreationDataOperations.validateCreateLinkAction(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSingleInputPin(DiagnosticChain diagnostics,
+ Map context) {
+ return LinkEndCreationDataOperations.validateSingleInputPin(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link End Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl#getEnd <em>End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndDataImpl#getQualifiers <em>Qualifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkEndDataImpl
+ extends ElementImpl
+ implements LinkEndData {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkEndDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLinkEndData();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin basicGetValue() {
+ return (InputPin) eVirtualGet(UMLPackage.LINK_END_DATA__VALUE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetEnd() {
+ return (Property) eVirtualGet(UMLPackage.LINK_END_DATA__END);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifierValue createQualifier() {
+ QualifierValue newQualifier = UMLFactory.eINSTANCE
+ .createQualifierValue();
+ getQualifiers().add(newQualifier);
+ return newQualifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePropertyIsAssociationEnd(
+ DiagnosticChain diagnostics, Map context) {
+ return LinkEndDataOperations.validatePropertyIsAssociationEnd(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return LinkEndDataOperations.validateSameType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return LinkEndDataOperations.validateMultiplicity(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateQualifiers(DiagnosticChain diagnostics, Map context) {
+ return LinkEndDataOperations.validateQualifiers(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEndObjectInputPin(DiagnosticChain diagnostics,
+ Map context) {
+ return LinkEndDataOperations.validateEndObjectInputPin(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Link End Destruction Data</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl#isDestroyDuplicates <em>Is Destroy Duplicates</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LinkEndDestructionDataImpl#getDestroyAt <em>Destroy At</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LinkEndDestructionDataImpl
+ extends LinkEndDataImpl
+ implements LinkEndDestructionData {
+
+ /**
+ * The default value of the '{@link #isDestroyDuplicates() <em>Is Destroy Duplicates</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDestroyDuplicates()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DESTROY_DUPLICATES_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDestroyDuplicates() <em>Is Destroy Duplicates</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDestroyDuplicates()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DESTROY_DUPLICATES_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkEndDestructionDataImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLinkEndDestructionData();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDestroyDuplicates() {
+ return (eFlags & IS_DESTROY_DUPLICATES_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin basicGetDestroyAt() {
+ return (InputPin) eVirtualGet(UMLPackage.LINK_END_DESTRUCTION_DATA__DESTROY_AT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDestroyLinkAction(DiagnosticChain diagnostics,
+ Map context) {
+ return LinkEndDestructionDataOperations.validateDestroyLinkAction(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUnlimitedNaturalAndMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return LinkEndDestructionDataOperations
+ .validateUnlimitedNaturalAndMultiplicity(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal Boolean</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LiteralBooleanImpl#isValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LiteralBooleanImpl
+ extends LiteralSpecificationImpl
+ implements LiteralBoolean {
+
+ /**
+ * The default value of the '{@link #isValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VALUE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralBooleanImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLiteralBoolean();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isValue() {
+ return (eFlags & VALUE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isComputable() {
+ return LiteralBooleanOperations.isComputable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean booleanValue() {
+ return LiteralBooleanOperations.booleanValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal Integer</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LiteralIntegerImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LiteralIntegerImpl
+ extends LiteralSpecificationImpl
+ implements LiteralInteger {
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralIntegerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLiteralInteger();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isComputable() {
+ return LiteralIntegerOperations.isComputable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int integerValue() {
+ return LiteralIntegerOperations.integerValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal Null</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class LiteralNullImpl
+ extends LiteralSpecificationImpl
+ implements LiteralNull {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralNullImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLiteralNull();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isComputable() {
+ return LiteralNullOperations.isComputable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class LiteralSpecificationImpl
+ extends ValueSpecificationImpl
+ implements LiteralSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal String</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LiteralStringImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LiteralStringImpl
+ extends LiteralSpecificationImpl
+ implements LiteralString {
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralStringImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLiteralString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue() {
+ String value = (String) eVirtualGet(UMLPackage.LITERAL_STRING__VALUE);
+ return value == null
+ ? VALUE_EDEFAULT
+ : value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isComputable() {
+ return LiteralStringOperations.isComputable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String stringValue() {
+ return LiteralStringOperations.stringValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Literal Unlimited Natural</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LiteralUnlimitedNaturalImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LiteralUnlimitedNaturalImpl
+ extends LiteralSpecificationImpl
+ implements LiteralUnlimitedNatural {
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected int value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LiteralUnlimitedNaturalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLiteralUnlimitedNatural();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isComputable() {
+ return LiteralUnlimitedNaturalOperations.isComputable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int unlimitedValue() {
+ return LiteralUnlimitedNaturalOperations.unlimitedValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Loop Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#isTestedFirst <em>Is Tested First</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getBodyParts <em>Body Part</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getSetupParts <em>Setup Part</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getDecider <em>Decider</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getTests <em>Test</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getResults <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getLoopVariables <em>Loop Variable</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getBodyOutputs <em>Body Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.LoopNodeImpl#getLoopVariableInputs <em>Loop Variable Input</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LoopNodeImpl
+ extends StructuredActivityNodeImpl
+ implements LoopNode {
+
+ /**
+ * The default value of the '{@link #isTestedFirst() <em>Is Tested First</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isTestedFirst()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_TESTED_FIRST_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isTestedFirst() <em>Is Tested First</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isTestedFirst()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_TESTED_FIRST_EFLAG = 1 << 10;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LoopNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getLoopNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTestedFirst() {
+ return (eFlags & IS_TESTED_FIRST_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin basicGetDecider() {
+ return (OutputPin) eVirtualGet(UMLPackage.LOOP_NODE__DECIDER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ getResults().add(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createLoopVariable() {
+ OutputPin newLoopVariable = UMLFactory.eINSTANCE.createOutputPin();
+ getLoopVariables().add(newLoopVariable);
+ return newLoopVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createLoopVariableInput(EClass eClass) {
+ InputPin newLoopVariableInput = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getLoopVariableInputs().add(newLoopVariableInput);
+ return newLoopVariableInput;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createLoopVariableInput() {
+ InputPin newLoopVariableInput = UMLFactory.eINSTANCE.createInputPin();
+ getLoopVariableInputs().add(newLoopVariableInput);
+ return newLoopVariableInput;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputEdges(DiagnosticChain diagnostics, Map context) {
+ return LoopNodeOperations
+ .validateInputEdges(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBodyOutput(DiagnosticChain diagnostics, Map context) {
+ return LoopNodeOperations
+ .validateBodyOutput(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultNoIncoming(DiagnosticChain diagnostics,
+ Map context) {
+ return LoopNodeOperations.validateResultNoIncoming(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOutputs() {
+ return super.isSetOutputs()
+ || eIsSet(UMLPackage.eINSTANCE.getLoopNode_Result());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getLoopNode_LoopVariable());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Manifestation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl#getSuppliers <em>Supplier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ManifestationImpl#getUtilizedElement <em>Utilized Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ManifestationImpl
+ extends AbstractionImpl
+ implements Manifestation {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ManifestationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getManifestation();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageableElement basicGetUtilizedElement() {
+ return (PackageableElement) eVirtualGet(UMLPackage.MANIFESTATION__UTILIZED_ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Merge Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class MergeNodeImpl
+ extends ControlNodeImpl
+ implements MergeNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MergeNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getMergeNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneOutgoingEdge(DiagnosticChain diagnostics,
+ Map context) {
+ return MergeNodeOperations.validateOneOutgoingEdge(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Message End</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageEndImpl#getMessage <em>Message</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MessageEndImpl
+ extends NamedElementImpl
+ implements MessageEnd {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MessageEndImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getMessageEnd();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Message basicGetMessage() {
+ return (Message) eVirtualGet(UMLPackage.MESSAGE_END__MESSAGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Message Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MessageEventImpl
+ extends EventImpl
+ implements MessageEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MessageEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Message</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getMessageKind <em>Message Kind</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getMessageSort <em>Message Sort</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getReceiveEvent <em>Receive Event</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getSendEvent <em>Send Event</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getConnector <em>Connector</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getInteraction <em>Interaction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getArguments <em>Argument</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageImpl#getSignature <em>Signature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MessageImpl
+ extends NamedElementImpl
+ implements Message {
+
+ /**
+ * The default value of the '{@link #getMessageKind() <em>Message Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageKind()
+ * @generated
+ * @ordered
+ */
+ protected static final MessageKind MESSAGE_KIND_EDEFAULT = MessageKind.COMPLETE_LITERAL;
+
+ /**
+ * The default value of the '{@link #getMessageSort() <em>Message Sort</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMessageSort()
+ * @generated
+ * @ordered
+ */
+ protected static final MessageSort MESSAGE_SORT_EDEFAULT = MessageSort.SYNCH_CALL_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MessageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getMessage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MessageSort getMessageSort() {
+ MessageSort messageSort = (MessageSort) eVirtualGet(UMLPackage.MESSAGE__MESSAGE_SORT);
+ return messageSort == null
+ ? MESSAGE_SORT_EDEFAULT
+ : messageSort;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MessageEnd basicGetReceiveEvent() {
+ return (MessageEnd) eVirtualGet(UMLPackage.MESSAGE__RECEIVE_EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MessageEnd basicGetSendEvent() {
+ return (MessageEnd) eVirtualGet(UMLPackage.MESSAGE__SEND_EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Connector basicGetConnector() {
+ return (Connector) eVirtualGet(UMLPackage.MESSAGE__CONNECTOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction getInteraction() {
+ if (eContainerFeatureID != UMLPackage.MESSAGE__INTERACTION)
+ return null;
+ return (Interaction) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createArgument(EClass eClass) {
+ ValueSpecification newArgument = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getArguments().add(newArgument);
+ return newArgument;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NamedElement getSignature() {
+ NamedElement signature = basicGetSignature();
+ return signature == null
+ ? null
+ : (signature.eIsProxy()
+ ? (NamedElement) eResolveProxy((InternalEObject) signature)
+ : signature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSendingReceivingMessageEvent(
+ DiagnosticChain diagnostics, Map context) {
+ return MessageOperations.validateSendingReceivingMessageEvent(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSignatureReferTo(DiagnosticChain diagnostics,
+ Map context) {
+ return MessageOperations.validateSignatureReferTo(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSignatureIsOperation(DiagnosticChain diagnostics,
+ Map context) {
+ return MessageOperations.validateSignatureIsOperation(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSignatureIsSignal(DiagnosticChain diagnostics,
+ Map context) {
+ return MessageOperations.validateSignatureIsSignal(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateArguments(DiagnosticChain diagnostics, Map context) {
+ return MessageOperations.validateArguments(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotCrossBoundaries(DiagnosticChain diagnostics,
+ Map context) {
+ return MessageOperations.validateCannotCrossBoundaries(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOccurrenceSpecifications(
+ DiagnosticChain diagnostics, Map context) {
+ return MessageOperations.validateOccurrenceSpecifications(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Interaction interaction = getInteraction();
+ if (interaction != null) {
+ return interaction;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getMessage_Interaction());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Message Occurrence Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl#getMessage <em>Message</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MessageOccurrenceSpecificationImpl#getEvent <em>Event</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class MessageOccurrenceSpecificationImpl
+ extends OccurrenceSpecificationImpl
+ implements MessageOccurrenceSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MessageOccurrenceSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getMessageOccurrenceSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Message basicGetMessage() {
+ return (Message) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__MESSAGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent() {
+ return (Event) eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetEvent() {
+ return eVirtualGet(UMLPackage.MESSAGE_OCCURRENCE_SPECIFICATION__EVENT) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ModelImpl#getViewpoint <em>Viewpoint</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelImpl
+ extends PackageImpl
+ implements Model {
+
+ /**
+ * The default value of the '{@link #getViewpoint() <em>Viewpoint</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getViewpoint()
+ * @generated
+ * @ordered
+ */
+ protected static final String VIEWPOINT_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getModel();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getViewpoint() {
+ String viewpoint = (String) eVirtualGet(UMLPackage.MODEL__VIEWPOINT);
+ return viewpoint == null
+ ? VIEWPOINT_EDEFAULT
+ : viewpoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Multiplicity Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#isOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#isUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getUpper <em>Upper</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getUpperValue <em>Upper Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.MultiplicityElementImpl#getLowerValue <em>Lower Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class MultiplicityElementImpl
+ extends ElementImpl
+ implements MultiplicityElement {
+
+ /**
+ * The default value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ORDERED_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_UNIQUE_EFLAG = 1 << 9;
+
+ /**
+ * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPPER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected static final int LOWER_EDEFAULT = 1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MultiplicityElementImpl() {
+ super();
+ eFlags |= IS_UNIQUE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getMultiplicityElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOrdered() {
+ return (eFlags & IS_ORDERED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnique() {
+ return (eFlags & IS_UNIQUE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getUpperValue() {
+ ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__UPPER_VALUE);
+ return upperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createUpperValue(EClass eClass) {
+ ValueSpecification newUpperValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setUpperValue(newUpperValue);
+ return newUpperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getLowerValue() {
+ ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.MULTIPLICITY_ELEMENT__LOWER_VALUE);
+ return lowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createLowerValue(EClass eClass) {
+ ValueSpecification newLowerValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setLowerValue(newLowerValue);
+ return newLowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGt0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateLowerGe0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGeLower(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationNoSideEffects(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationNoSideEffects(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationConstant(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationConstant(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultivalued() {
+ return MultiplicityElementOperations.isMultivalued(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesCardinality(int C) {
+ return MultiplicityElementOperations.includesCardinality(this, C);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesMultiplicity(MultiplicityElement M) {
+ return MultiplicityElementOperations.includesMultiplicity(this, M);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int lowerBound() {
+ return MultiplicityElementOperations.lowerBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int upperBound() {
+ return MultiplicityElementOperations.upperBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Named Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getQualifiedName <em>Qualified Name</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamedElementImpl#getNameExpression <em>Name Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class NamedElementImpl
+ extends ElementImpl
+ implements NamedElement {
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getVisibility() <em>Visibility</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisibility()
+ * @generated
+ * @ordered
+ */
+ protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC_LITERAL;
+
+ /**
+ * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiedName()
+ * @generated
+ * @ordered
+ */
+ protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getNamedElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ String name = (String) eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME);
+ return name == null
+ ? NAME_EDEFAULT
+ : name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.NAMED_ELEMENT__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringExpression getNameExpression() {
+ StringExpression nameExpression = (StringExpression) eVirtualGet(UMLPackage.NAMED_ELEMENT__NAME_EXPRESSION);
+ return nameExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringExpression createNameExpression() {
+ StringExpression newNameExpression = UMLFactory.eINSTANCE
+ .createStringExpression();
+ setNameExpression(newNameExpression);
+ return newNameExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoName(DiagnosticChain diagnostics, Map context) {
+ return NamedElementOperations
+ .validateNoName(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateQualifiedName(DiagnosticChain diagnostics,
+ Map context) {
+ return NamedElementOperations.validateQualifiedName(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVisibilityNeedsOwnership(
+ DiagnosticChain diagnostics, Map context) {
+ return NamedElementOperations.validateVisibilityNeedsOwnership(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String qualifiedName() {
+ return NamedElementOperations.qualifiedName(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDistinguishableFrom(NamedElement n, Namespace ns) {
+ return NamedElementOperations.isDistinguishableFrom(this, n, ns);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String separator() {
+ return NamedElementOperations.separator(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace getNamespace() {
+ Namespace namespace = basicGetNamespace();
+ return namespace == null
+ ? null
+ : (Namespace) eResolveProxy((InternalEObject) namespace);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ if (isSetNamespace()) {
+ return basicGetNamespace();
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner() || isSetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Namespace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getElementImports <em>Element Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getPackageImports <em>Package Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getOwnedRules <em>Owned Rule</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NamespaceImpl#getImportedMembers <em>Imported Member</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class NamespaceImpl
+ extends NamedElementImpl
+ implements Namespace {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamespaceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ElementImport createElementImport() {
+ ElementImport newElementImport = UMLFactory.eINSTANCE
+ .createElementImport();
+ getElementImports().add(newElementImport);
+ return newElementImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageImport createPackageImport(EClass eClass) {
+ PackageImport newPackageImport = (PackageImport) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getPackageImports().add(newPackageImport);
+ return newPackageImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageImport createPackageImport() {
+ PackageImport newPackageImport = UMLFactory.eINSTANCE
+ .createPackageImport();
+ getPackageImports().add(newPackageImport);
+ return newPackageImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createOwnedRule(EClass eClass) {
+ Constraint newOwnedRule = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedRules().add(newOwnedRule);
+ return newOwnedRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createOwnedRule() {
+ Constraint newOwnedRule = UMLFactory.eINSTANCE.createConstraint();
+ getOwnedRules().add(newOwnedRule);
+ return newOwnedRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMembersAreDistinguishable(
+ DiagnosticChain diagnostics, Map context) {
+ return NamespaceOperations.validateMembersAreDistinguishable(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getNamesOfMember(NamedElement element) {
+ return NamespaceOperations.getNamesOfMember(this, element);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean membersAreDistinguishable() {
+ return NamespaceOperations.membersAreDistinguishable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List importMembers(List imps) {
+ return NamespaceOperations.importMembers(this, imps);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List excludeCollisions(List imps) {
+ return NamespaceOperations.excludeCollisions(this, imps);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getNamespace_ElementImport())
+ || eIsSet(UMLPackage.eINSTANCE.getNamespace_PackageImport())
+ || isSetOwnedMembers();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return eIsSet(UMLPackage.eINSTANCE.getNamespace_OwnedRule());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getDeployments <em>Deployment</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getDeployedElements <em>Deployed Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.NodeImpl#getNestedNodes <em>Nested Node</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NodeImpl
+ extends ClassImpl
+ implements Node {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Deployment createDeployment() {
+ Deployment newDeployment = UMLFactory.eINSTANCE.createDeployment();
+ getDeployments().add(newDeployment);
+ return newDeployment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Node createNestedNode(EClass eClass) {
+ Node newNestedNode = (Node) eClass.getEPackage().getEFactoryInstance()
+ .create(eClass);
+ getNestedNodes().add(newNestedNode);
+ return newNestedNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Node createNestedNode() {
+ Node newNestedNode = UMLFactory.eINSTANCE.createNode();
+ getNestedNodes().add(newNestedNode);
+ return newNestedNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInternalStructure(DiagnosticChain diagnostics,
+ Map context) {
+ return NodeOperations.validateInternalStructure(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getDeploymentTarget_Deployment());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Object Flow</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#isMulticast <em>Is Multicast</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#isMultireceive <em>Is Multireceive</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#getTransformation <em>Transformation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectFlowImpl#getSelection <em>Selection</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ObjectFlowImpl
+ extends ActivityEdgeImpl
+ implements ObjectFlow {
+
+ /**
+ * The default value of the '{@link #isMulticast() <em>Is Multicast</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMulticast()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MULTICAST_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isMulticast() <em>Is Multicast</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMulticast()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_MULTICAST_EFLAG = 1 << 9;
+
+ /**
+ * The default value of the '{@link #isMultireceive() <em>Is Multireceive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultireceive()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MULTIRECEIVE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isMultireceive() <em>Is Multireceive</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMultireceive()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_MULTIRECEIVE_EFLAG = 1 << 10;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ObjectFlowImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getObjectFlow();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMulticast() {
+ return (eFlags & IS_MULTICAST_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultireceive() {
+ return (eFlags & IS_MULTIRECEIVE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetTransformation() {
+ return (Behavior) eVirtualGet(UMLPackage.OBJECT_FLOW__TRANSFORMATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetSelection() {
+ return (Behavior) eVirtualGet(UMLPackage.OBJECT_FLOW__SELECTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoActions(DiagnosticChain diagnostics, Map context) {
+ return ObjectFlowOperations.validateNoActions(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompatibleTypes(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectFlowOperations.validateCompatibleTypes(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameUpperBounds(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectFlowOperations.validateSameUpperBounds(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTarget(DiagnosticChain diagnostics, Map context) {
+ return ObjectFlowOperations.validateTarget(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTransformationBehaviour(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectFlowOperations.validateTransformationBehaviour(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSelectionBehaviour(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectFlowOperations.validateSelectionBehaviour(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputAndOutputParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectFlowOperations.validateInputAndOutputParameter(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateIsMulticastOrIsMultireceive(
+ DiagnosticChain diagnostics, Map context) {
+ return ObjectFlowOperations.validateIsMulticastOrIsMultireceive(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Object Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getOrdering <em>Ordering</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#isControlType <em>Is Control Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getUpperBound <em>Upper Bound</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getInStates <em>In State</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ObjectNodeImpl#getSelection <em>Selection</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ObjectNodeImpl
+ extends ActivityNodeImpl
+ implements ObjectNode {
+
+ /**
+ * The default value of the '{@link #getOrdering() <em>Ordering</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOrdering()
+ * @generated
+ * @ordered
+ */
+ protected static final ObjectNodeOrderingKind ORDERING_EDEFAULT = ObjectNodeOrderingKind.FIFO_LITERAL;
+
+ /**
+ * The default value of the '{@link #isControlType() <em>Is Control Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isControlType()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_CONTROL_TYPE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isControlType() <em>Is Control Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isControlType()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_CONTROL_TYPE_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ObjectNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getObjectNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return (Type) eVirtualGet(UMLPackage.OBJECT_NODE__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectNodeOrderingKind getOrdering() {
+ ObjectNodeOrderingKind ordering = (ObjectNodeOrderingKind) eVirtualGet(UMLPackage.OBJECT_NODE__ORDERING);
+ return ordering == null
+ ? ORDERING_EDEFAULT
+ : ordering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isControlType() {
+ return (eFlags & IS_CONTROL_TYPE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getUpperBound() {
+ ValueSpecification upperBound = (ValueSpecification) eVirtualGet(UMLPackage.OBJECT_NODE__UPPER_BOUND);
+ return upperBound;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createUpperBound(EClass eClass) {
+ ValueSpecification newUpperBound = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setUpperBound(newUpperBound);
+ return newUpperBound;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetSelection() {
+ return (Behavior) eVirtualGet(UMLPackage.OBJECT_NODE__SELECTION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateObjectFlowEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectNodeOperations.validateObjectFlowEdges(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotUnique(DiagnosticChain diagnostics, Map context) {
+ return ObjectNodeOperations.validateNotUnique(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSelectionBehavior(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectNodeOperations.validateSelectionBehavior(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputOutputParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return ObjectNodeOperations.validateInputOutputParameter(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Occurrence Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getToBefores <em>To Before</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getToAfters <em>To After</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OccurrenceSpecificationImpl#getCovereds <em>Covered</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class OccurrenceSpecificationImpl
+ extends InteractionFragmentImpl
+ implements OccurrenceSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OccurrenceSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getOccurrenceSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent() {
+ return (Event) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCovereds() {
+ List covered = (List) eVirtualGet(UMLPackage.OCCURRENCE_SPECIFICATION__COVERED);
+ return covered != null && !covered.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Opaque Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getBodies <em>Body</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getLanguages <em>Language</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getInputValues <em>Input Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueActionImpl#getOutputValues <em>Output Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OpaqueActionImpl
+ extends ActionImpl
+ implements OpaqueAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OpaqueActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getOpaqueAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInputs() {
+ return super.isSetInputs()
+ || eIsSet(UMLPackage.eINSTANCE.getOpaqueAction_InputValue());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Opaque Behavior</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl#getBodies <em>Body</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueBehaviorImpl#getLanguages <em>Language</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OpaqueBehaviorImpl
+ extends BehaviorImpl
+ implements OpaqueBehavior {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OpaqueBehaviorImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getOpaqueBehavior();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Opaque Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getBodies <em>Body</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getLanguages <em>Language</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getResult <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OpaqueExpressionImpl#getBehavior <em>Behavior</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OpaqueExpressionImpl
+ extends ValueSpecificationImpl
+ implements OpaqueExpression {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OpaqueExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getOpaqueExpression();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter getResult() {
+ Parameter result = basicGetResult();
+ return result == null
+ ? null
+ : (result.eIsProxy()
+ ? (Parameter) eResolveProxy((InternalEObject) result)
+ : result);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior basicGetBehavior() {
+ return (Behavior) eVirtualGet(UMLPackage.OPAQUE_EXPRESSION__BEHAVIOR);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLanguageBodySize(DiagnosticChain diagnostics,
+ Map context) {
+ return OpaqueExpressionOperations.validateLanguageBodySize(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneBodyDefaultLanguage(DiagnosticChain diagnostics,
+ Map context) {
+ return OpaqueExpressionOperations.validateOneBodyDefaultLanguage(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOnlyReturnResultParameters(
+ DiagnosticChain diagnostics, Map context) {
+ return OpaqueExpressionOperations.validateOnlyReturnResultParameters(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneReturnResultParameter(
+ DiagnosticChain diagnostics, Map context) {
+ return OpaqueExpressionOperations.validateOneReturnResultParameter(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int value() {
+ return OpaqueExpressionOperations.value(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIntegral() {
+ return OpaqueExpressionOperations.isIntegral(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isPositive() {
+ return OpaqueExpressionOperations.isPositive(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isNonNegative() {
+ return OpaqueExpressionOperations.isNonNegative(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operation</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getTemplateBindings <em>Template Binding</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getFeaturingClassifiers <em>Featuring Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedRules <em>Owned Rule</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isQuery <em>Is Query</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#isUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getUpper <em>Upper</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getClass_ <em>Class </em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getPreconditions <em>Precondition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getPostconditions <em>Postcondition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRedefinedOperations <em>Redefined Operation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getDatatype <em>Datatype</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getBodyCondition <em>Body Condition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getInterface <em>Interface</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getOwnedParameters <em>Owned Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationImpl#getRaisedExceptions <em>Raised Exception</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OperationImpl
+ extends BehavioralFeatureImpl
+ implements Operation {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isQuery() <em>Is Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isQuery()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_QUERY_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isQuery() <em>Is Query</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isQuery()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_QUERY_EFLAG = 1 << 11;
+
+ /**
+ * The default value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected static final int LOWER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPPER_EDEFAULT = 1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getOperation();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTemplateParameter() {
+ return eVirtualGet(UMLPackage.OPERATION__TEMPLATE_PARAMETER) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.OPERATION__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE
+ .createTemplateBinding();
+ getTemplateBindings().add(newTemplateBinding);
+ return newTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getOwnedTemplateSignature() {
+ TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.OPERATION__OWNED_TEMPLATE_SIGNATURE);
+ return ownedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature(EClass eClass) {
+ TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature() {
+ TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE
+ .createTemplateSignature();
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isQuery() {
+ return (eFlags & IS_QUERY_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class getClass_() {
+ if (eContainerFeatureID != UMLPackage.OPERATION__CLASS_)
+ return null;
+ return (org.eclipse.uml2.uml.Class) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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_));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataType getDatatype() {
+ if (eContainerFeatureID != UMLPackage.OPERATION__DATATYPE)
+ return null;
+ return (DataType) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getBodyCondition() {
+ Constraint bodyCondition = (Constraint) eVirtualGet(UMLPackage.OPERATION__BODY_CONDITION);
+ return bodyCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type getType() {
+ Type type = basicGetType();
+ return type == null
+ ? null
+ : (type.eIsProxy()
+ ? (Type) eResolveProxy((InternalEObject) type)
+ : type);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface getInterface() {
+ if (eContainerFeatureID != UMLPackage.OPERATION__INTERFACE)
+ return null;
+ return (Interface) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter createOwnedParameter() {
+ Parameter newOwnedParameter = UMLFactory.eINSTANCE.createParameter();
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedParameters() {
+ List ownedParameter = (List) eVirtualGet(UMLPackage.OPERATION__OWNED_PARAMETER);
+ return ownedParameter != null && !ownedParameter.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRaisedExceptions() {
+ List raisedException = (List) eVirtualGet(UMLPackage.OPERATION__RAISED_EXCEPTION);
+ return raisedException != null && !raisedException.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplate() {
+ return TemplateableElementOperations.isTemplate(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAtMostOneReturn(DiagnosticChain diagnostics,
+ Map context) {
+ return OperationOperations.validateAtMostOneReturn(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOnlyBodyForQuery(DiagnosticChain diagnostics,
+ Map context) {
+ return OperationOperations.validateOnlyBodyForQuery(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int lowerBound() {
+ return OperationOperations.lowerBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int upperBound() {
+ return OperationOperations.upperBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return OperationOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getParameterableElement_OwningTemplateParameter());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateableElement_TemplateBinding())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateableElement_OwnedTemplateSignature());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinitionContexts() {
+ return super.isSetRedefinitionContexts()
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_())
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype())
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Interface());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_())
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeaturingClassifiers() {
+ return super.isSetFeaturingClassifiers()
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Class_())
+ || eIsSet(UMLPackage.eINSTANCE.getOperation_Datatype());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Operation Template Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.OperationTemplateParameterImpl#getParameteredElement <em>Parametered Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OperationTemplateParameterImpl
+ extends TemplateParameterImpl
+ implements OperationTemplateParameter {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OperationTemplateParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getOperationTemplateParameter();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement basicGetParameteredElement() {
+ return (ParameterableElement) eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetParameteredElement() {
+ return eVirtualGet(UMLPackage.OPERATION_TEMPLATE_PARAMETER__PARAMETERED_ELEMENT) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Output Pin</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class OutputPinImpl
+ extends PinImpl
+ implements OutputPin {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OutputPinImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Package</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getTemplateBindings <em>Template Binding</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getPackagedElements <em>Packaged Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getPackageImports <em>Package Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getPackageMerges <em>Package Merge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getOwnedTypes <em>Owned Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getNestedPackages <em>Nested Package</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getNestingPackage <em>Nesting Package</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImpl#getAppliedProfiles <em>Applied Profile</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PackageImpl
+ extends NamespaceImpl
+ implements org.eclipse.uml2.uml.Package {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.PACKAGE__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.PACKAGE__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.PACKAGE__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVisibility() {
+ return eVirtualIsSet(UMLPackage.PACKAGE__VISIBILITY)
+ && eVirtualGet(UMLPackage.PACKAGE__VISIBILITY) != VISIBILITY_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE
+ .createTemplateBinding();
+ getTemplateBindings().add(newTemplateBinding);
+ return newTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getOwnedTemplateSignature() {
+ TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PACKAGE__OWNED_TEMPLATE_SIGNATURE);
+ return ownedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature(EClass eClass) {
+ TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature() {
+ TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE
+ .createTemplateSignature();
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageableElement createPackagedElement(EClass eClass) {
+ PackageableElement newPackagedElement = (PackageableElement) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getPackagedElements().add(newPackagedElement);
+ return newPackagedElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageMerge createPackageMerge() {
+ PackageMerge newPackageMerge = UMLFactory.eINSTANCE
+ .createPackageMerge();
+ getPackageMerges().add(newPackageMerge);
+ return newPackageMerge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplate() {
+ return TemplateableElementOperations.isTemplate(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateElementsPublicOrPrivate(DiagnosticChain diagnostics,
+ Map context) {
+ return PackageOperations.validateElementsPublicOrPrivate(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean makesVisible(NamedElement el) {
+ return PackageOperations.makesVisible(this, el);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean mustBeOwned() {
+ return PackageOperations.mustBeOwned(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getParameterableElement_OwningTemplateParameter());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateableElement_TemplateBinding())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateableElement_OwnedTemplateSignature())
+ || eIsSet(UMLPackage.eINSTANCE.getPackage_PackageMerge());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getPackage_PackagedElement());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ org.eclipse.uml2.uml.Package nestingPackage = getNestingPackage();
+ if (nestingPackage != null) {
+ return nestingPackage;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Package Import</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getVisibility <em>Visibility</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getImportedPackage <em>Imported Package</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageImportImpl#getImportingNamespace <em>Importing Namespace</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PackageImportImpl
+ extends DirectedRelationshipImpl
+ implements PackageImport {
+
+ /**
+ * The default value of the '{@link #getVisibility() <em>Visibility</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVisibility()
+ * @generated
+ * @ordered
+ */
+ protected static final VisibilityKind VISIBILITY_EDEFAULT = VisibilityKind.PUBLIC_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageImportImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPackageImport();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.PACKAGE_IMPORT__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetImportedPackage() {
+ return (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PACKAGE_IMPORT__IMPORTED_PACKAGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace getImportingNamespace() {
+ if (eContainerFeatureID != UMLPackage.PACKAGE_IMPORT__IMPORTING_NAMESPACE)
+ return null;
+ return (Namespace) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePublicOrPrivate(DiagnosticChain diagnostics,
+ Map context) {
+ return PackageImportOperations.validatePublicOrPrivate(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getPackageImport_ImportedPackage());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return super.isSetSources()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getPackageImport_ImportingNamespace());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Namespace importingNamespace = getImportingNamespace();
+ if (importingNamespace != null) {
+ return importingNamespace;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Package Merge</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getMergedPackage <em>Merged Package</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageMergeImpl#getReceivingPackage <em>Receiving Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PackageMergeImpl
+ extends DirectedRelationshipImpl
+ implements PackageMerge {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageMergeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPackageMerge();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetMergedPackage() {
+ return (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PACKAGE_MERGE__MERGED_PACKAGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package getReceivingPackage() {
+ if (eContainerFeatureID != UMLPackage.PACKAGE_MERGE__RECEIVING_PACKAGE)
+ return null;
+ return (org.eclipse.uml2.uml.Package) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getPackageMerge_MergedPackage());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return super.isSetSources()
+ || eIsSet(UMLPackage.eINSTANCE.getPackageMerge_ReceivingPackage());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ org.eclipse.uml2.uml.Package receivingPackage = getReceivingPackage();
+ if (receivingPackage != null) {
+ return receivingPackage;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Packageable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PackageableElementImpl#getVisibility <em>Visibility</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class PackageableElementImpl
+ extends NamedElementImpl
+ implements PackageableElement {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PackageableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPackageableElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.PACKAGEABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public VisibilityKind getVisibility() {
+ VisibilityKind visibility = (VisibilityKind) eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY);
+ return visibility == null
+ ? VISIBILITY_EDEFAULT
+ : visibility;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetVisibility() {
+ return eVirtualIsSet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY)
+ && eVirtualGet(UMLPackage.PACKAGEABLE_ELEMENT__VISIBILITY) != VISIBILITY_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getUpper <em>Upper</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getUpperValue <em>Upper Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getLowerValue <em>Lower Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getParameterSets <em>Parameter Set</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getOperation <em>Operation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getDirection <em>Direction</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getDefaultValue <em>Default Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isException <em>Is Exception</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#isStream <em>Is Stream</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterImpl#getEffect <em>Effect</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParameterImpl
+ extends ConnectableElementImpl
+ implements Parameter {
+
+ /**
+ * The default value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ORDERED_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_UNIQUE_EFLAG = 1 << 9;
+
+ /**
+ * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPPER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected static final int LOWER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDirection()
+ * @generated
+ * @ordered
+ */
+ protected static final ParameterDirectionKind DIRECTION_EDEFAULT = ParameterDirectionKind.IN_LITERAL;
+
+ /**
+ * The default value of the '{@link #getDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #isException() <em>Is Exception</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isException()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_EXCEPTION_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isException() <em>Is Exception</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isException()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_EXCEPTION_EFLAG = 1 << 10;
+
+ /**
+ * The default value of the '{@link #isStream() <em>Is Stream</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStream()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STREAM_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isStream() <em>Is Stream</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStream()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_STREAM_EFLAG = 1 << 11;
+
+ /**
+ * The default value of the '{@link #getEffect() <em>Effect</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getEffect()
+ * @generated
+ * @ordered
+ */
+ protected static final ParameterEffectKind EFFECT_EDEFAULT = ParameterEffectKind.CREATE_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParameterImpl() {
+ super();
+ eFlags |= IS_UNIQUE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getParameter();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOrdered() {
+ return (eFlags & IS_ORDERED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnique() {
+ return (eFlags & IS_UNIQUE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getUpperValue() {
+ ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__UPPER_VALUE);
+ return upperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createUpperValue(EClass eClass) {
+ ValueSpecification newUpperValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setUpperValue(newUpperValue);
+ return newUpperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getLowerValue() {
+ ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__LOWER_VALUE);
+ return lowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createLowerValue(EClass eClass) {
+ ValueSpecification newLowerValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setLowerValue(newLowerValue);
+ return newLowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation getOperation() {
+ Operation operation = basicGetOperation();
+ return operation == null
+ ? null
+ : (operation.eIsProxy()
+ ? (Operation) eResolveProxy((InternalEObject) operation)
+ : operation);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterDirectionKind getDirection() {
+ ParameterDirectionKind direction = (ParameterDirectionKind) eVirtualGet(UMLPackage.PARAMETER__DIRECTION);
+ return direction == null
+ ? DIRECTION_EDEFAULT
+ : direction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getDefaultValue() {
+ ValueSpecification defaultValue = (ValueSpecification) eVirtualGet(UMLPackage.PARAMETER__DEFAULT_VALUE);
+ return defaultValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createDefaultValue(EClass eClass) {
+ ValueSpecification newDefaultValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setDefaultValue(newDefaultValue);
+ return newDefaultValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isException() {
+ return (eFlags & IS_EXCEPTION_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStream() {
+ return (eFlags & IS_STREAM_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterEffectKind getEffect() {
+ ParameterEffectKind effect = (ParameterEffectKind) eVirtualGet(UMLPackage.PARAMETER__EFFECT);
+ return effect == null
+ ? EFFECT_EDEFAULT
+ : effect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGt0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateLowerGe0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGeLower(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationNoSideEffects(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationNoSideEffects(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationConstant(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationConstant(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultivalued() {
+ return MultiplicityElementOperations.isMultivalued(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesCardinality(int C) {
+ return MultiplicityElementOperations.includesCardinality(this, C);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesMultiplicity(MultiplicityElement M) {
+ return MultiplicityElementOperations.includesMultiplicity(this, M);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int lowerBound() {
+ return MultiplicityElementOperations.lowerBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int upperBound() {
+ return MultiplicityElementOperations.upperBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConnectorEnd(DiagnosticChain diagnostics, Map context) {
+ return ParameterOperations.validateConnectorEnd(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStreamAndException(DiagnosticChain diagnostics,
+ Map context) {
+ return ParameterOperations.validateStreamAndException(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotException(DiagnosticChain diagnostics, Map context) {
+ return ParameterOperations.validateNotException(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateReentrantBehaviors(DiagnosticChain diagnostics,
+ Map context) {
+ return ParameterOperations.validateReentrantBehaviors(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInAndOut(DiagnosticChain diagnostics, Map context) {
+ return ParameterOperations.validateInAndOut(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue())
+ || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue())
+ || eIsSet(UMLPackage.eINSTANCE.getParameter_DefaultValue());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Operation operation = basicGetOperation();
+ if (operation != null) {
+ return operation;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameter Set</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl#getParameters <em>Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterSetImpl#getConditions <em>Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ParameterSetImpl
+ extends NamedElementImpl
+ implements ParameterSet {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParameterSetImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getParameterSet();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createCondition(EClass eClass) {
+ Constraint newCondition = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getConditions().add(newCondition);
+ return newCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createCondition() {
+ Constraint newCondition = UMLFactory.eINSTANCE.createConstraint();
+ getConditions().add(newCondition);
+ return newCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameParameterizedEntity(DiagnosticChain diagnostics,
+ Map context) {
+ return ParameterSetOperations.validateSameParameterizedEntity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInput(DiagnosticChain diagnostics, Map context) {
+ return ParameterSetOperations.validateInput(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTwoParameterSets(DiagnosticChain diagnostics,
+ Map context) {
+ return ParameterSetOperations.validateTwoParameterSets(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Parameterable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterableElementImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ParameterableElementImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ParameterableElementImpl
+ extends ElementImpl
+ implements ParameterableElement {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ParameterableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getParameterableElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.PARAMETERABLE_ELEMENT__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.PARAMETERABLE_ELEMENT__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Part Decomposition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PartDecompositionImpl
+ extends InteractionUseImpl
+ implements PartDecomposition {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PartDecompositionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPartDecomposition();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePartsOfInternalStructures(
+ DiagnosticChain diagnostics, Map context) {
+ return PartDecompositionOperations.validatePartsOfInternalStructures(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssume(DiagnosticChain diagnostics, Map context) {
+ return PartDecompositionOperations.validateAssume(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pin</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PinImpl#isControl <em>Is Control</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PinImpl
+ extends ObjectNodeImpl
+ implements Pin {
+
+ /**
+ * The default value of the '{@link #isControl() <em>Is Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isControl()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_CONTROL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isControl() <em>Is Control</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isControl()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_CONTROL_EFLAG = 1 << 10;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PinImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPin();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isControl() {
+ return (eFlags & IS_CONTROL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateControlPins(DiagnosticChain diagnostics, Map context) {
+ return PinOperations.validateControlPins(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#isBehavior <em>Is Behavior</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#isService <em>Is Service</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#getRequireds <em>Required</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#getRedefinedPorts <em>Redefined Port</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#getProvideds <em>Provided</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PortImpl#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PortImpl
+ extends PropertyImpl
+ implements Port {
+
+ /**
+ * The default value of the '{@link #isBehavior() <em>Is Behavior</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBehavior()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_BEHAVIOR_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isBehavior() <em>Is Behavior</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isBehavior()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_BEHAVIOR_EFLAG = 1 << 15;
+
+ /**
+ * The default value of the '{@link #isService() <em>Is Service</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isService()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SERVICE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isService() <em>Is Service</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isService()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_SERVICE_EFLAG = 1 << 16;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortImpl() {
+ super();
+ eFlags |= IS_SERVICE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPort();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isBehavior() {
+ return (eFlags & IS_BEHAVIOR_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isService() {
+ return (eFlags & IS_SERVICE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolStateMachine basicGetProtocol() {
+ return (ProtocolStateMachine) eVirtualGet(UMLPackage.PORT__PROTOCOL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRequiredInterfaces(DiagnosticChain diagnostics,
+ Map context) {
+ return PortOperations.validateRequiredInterfaces(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePortAggregation(DiagnosticChain diagnostics,
+ Map context) {
+ return PortOperations.validatePortAggregation(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePortDestroyed(DiagnosticChain diagnostics,
+ Map context) {
+ return PortOperations.validatePortDestroyed(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDefaultValue(DiagnosticChain diagnostics, Map context) {
+ return PortOperations.validateDefaultValue(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Primitive Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PrimitiveTypeImpl
+ extends DataTypeImpl
+ implements PrimitiveType {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PrimitiveTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Profile Application</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getImportedPackage <em>Imported Package</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#getImportedProfile <em>Imported Profile</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileApplicationImpl#isStrict <em>Is Strict</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProfileApplicationImpl
+ extends PackageImportImpl
+ implements ProfileApplication {
+
+ /**
+ * The default value of the '{@link #isStrict() <em>Is Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_STRICT_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isStrict() <em>Is Strict</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isStrict()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_STRICT_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProfileApplicationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getProfileApplication();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package basicGetImportedPackage() {
+ return (org.eclipse.uml2.uml.Package) eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PACKAGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Profile basicGetImportedProfile() {
+ return (Profile) eVirtualGet(UMLPackage.PROFILE_APPLICATION__IMPORTED_PROFILE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isStrict() {
+ return (eFlags & IS_STRICT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Profile</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getPackagedElements <em>Packaged Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getElementImports <em>Element Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getPackageImports <em>Package Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getOwnedStereotypes <em>Owned Stereotype</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getMetaclassReferences <em>Metaclass Reference</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProfileImpl#getMetamodelReferences <em>Metamodel Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProfileImpl
+ extends PackageImpl
+ implements Profile {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProfileImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getProfile();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMetaclassReferenceNotSpecialized(
+ DiagnosticChain diagnostics, Map context) {
+ return ProfileOperations.validateMetaclassReferenceNotSpecialized(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateReferencesSameMetamodel(DiagnosticChain diagnostics,
+ Map context) {
+ return ProfileOperations.validateReferencesSameMetamodel(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getTemplateParameter <em>Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwningTemplateParameter <em>Owning Template Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getEnds <em>End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getClientDependencies <em>Client Dependency</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDeployments <em>Deployment</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDeployedElements <em>Deployed Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getTemplateBindings <em>Template Binding</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getFeaturingClassifiers <em>Featuring Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAssociation <em>Association</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDatatype <em>Datatype</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isDerived <em>Is Derived</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isDerivedUnion <em>Is Derived Union</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAggregation <em>Aggregation</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isComposite <em>Is Composite</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getClass_ <em>Class </em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getRedefinedProperties <em>Redefined Property</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOwningAssociation <em>Owning Association</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getDefaultValue <em>Default Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getOpposite <em>Opposite</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getSubsettedProperties <em>Subsetted Property</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getQualifiers <em>Qualifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#getAssociationEnd <em>Association End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PropertyImpl#isReadOnly <em>Is Read Only</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyImpl
+ extends StructuralFeatureImpl
+ implements Property {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isDerived() <em>Is Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerived()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DERIVED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDerived() <em>Is Derived</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerived()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DERIVED_EFLAG = 1 << 13;
+
+ /**
+ * The default value of the '{@link #isDerivedUnion() <em>Is Derived Union</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerivedUnion()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DERIVED_UNION_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDerivedUnion() <em>Is Derived Union</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDerivedUnion()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DERIVED_UNION_EFLAG = 1 << 14;
+
+ /**
+ * The default value of the '{@link #getDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_EDEFAULT = null;
+
+ /**
+ * The default value of the '{@link #getAggregation() <em>Aggregation</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getAggregation()
+ * @generated
+ * @ordered
+ */
+ protected static final AggregationKind AGGREGATION_EDEFAULT = AggregationKind.NONE_LITERAL;
+
+ /**
+ * The default value of the '{@link #isComposite() <em>Is Composite</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isComposite()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_COMPOSITE_EDEFAULT = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getProperty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetTemplateParameter() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTemplateParameter() {
+ return eVirtualGet(UMLPackage.PROPERTY__TEMPLATE_PARAMETER) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter getOwningTemplateParameter() {
+ if (eContainerFeatureID != UMLPackage.PROPERTY__OWNING_TEMPLATE_PARAMETER)
+ return null;
+ return (TemplateParameter) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Deployment createDeployment() {
+ Deployment newDeployment = UMLFactory.eINSTANCE.createDeployment();
+ getDeployments().add(newDeployment);
+ return newDeployment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE
+ .createTemplateBinding();
+ getTemplateBindings().add(newTemplateBinding);
+ return newTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getOwnedTemplateSignature() {
+ TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.PROPERTY__OWNED_TEMPLATE_SIGNATURE);
+ return ownedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature(EClass eClass) {
+ TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature() {
+ TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE
+ .createTemplateSignature();
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association basicGetAssociation() {
+ return (Association) eVirtualGet(UMLPackage.PROPERTY__ASSOCIATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataType getDatatype() {
+ if (eContainerFeatureID != UMLPackage.PROPERTY__DATATYPE)
+ return null;
+ return (DataType) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDerived() {
+ return (eFlags & IS_DERIVED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDerivedUnion() {
+ return (eFlags & IS_DERIVED_UNION_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AggregationKind getAggregation() {
+ AggregationKind aggregation = (AggregationKind) eVirtualGet(UMLPackage.PROPERTY__AGGREGATION);
+ return aggregation == null
+ ? AGGREGATION_EDEFAULT
+ : aggregation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association getOwningAssociation() {
+ if (eContainerFeatureID != UMLPackage.PROPERTY__OWNING_ASSOCIATION)
+ return null;
+ return (Association) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getDefaultValue() {
+ ValueSpecification defaultValue = (ValueSpecification) eVirtualGet(UMLPackage.PROPERTY__DEFAULT_VALUE);
+ return defaultValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createDefaultValue(EClass eClass) {
+ ValueSpecification newDefaultValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setDefaultValue(newDefaultValue);
+ return newDefaultValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getOpposite() {
+ Property opposite = basicGetOpposite();
+ return opposite == null
+ ? null
+ : (opposite.eIsProxy()
+ ? (Property) eResolveProxy((InternalEObject) opposite)
+ : opposite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createQualifier(EClass eClass) {
+ Property newQualifier = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getQualifiers().add(newQualifier);
+ return newQualifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createQualifier() {
+ Property newQualifier = UMLFactory.eINSTANCE.createProperty();
+ getQualifiers().add(newQualifier);
+ return newQualifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property getAssociationEnd() {
+ if (eContainerFeatureID != UMLPackage.PROPERTY__ASSOCIATION_END)
+ return null;
+ return (Property) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReadOnly() {
+ return (eFlags & IS_READ_ONLY_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIsReadOnly() {
+ return ((eFlags & IS_READ_ONLY_EFLAG) != 0) != IS_READ_ONLY_EDEFAULT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ParameterableElementOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplateParameter() {
+ return ParameterableElementOperations.isTemplateParameter(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplate() {
+ return TemplateableElementOperations.isTemplate(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfComposite(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateMultiplicityOfComposite(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSubsettingContext(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateSubsettingContext(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNavigablePropertyRedefinition(
+ DiagnosticChain diagnostics, Map context) {
+ return PropertyOperations.validateNavigablePropertyRedefinition(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSubsettingRules(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateSubsettingRules(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNavigableReadonly(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateNavigableReadonly(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDerivedUnionIsDerived(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateDerivedUnionIsDerived(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDerivedUnionIsReadOnly(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateDerivedUnionIsReadOnly(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeploymentTarget(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateDeploymentTarget(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBindingToAttribute(DiagnosticChain diagnostics,
+ Map context) {
+ return PropertyOperations.validateBindingToAttribute(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAttribute(Property p) {
+ return PropertyOperations.isAttribute(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isNavigable() {
+ return PropertyOperations.isNavigable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return PropertyOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateParameter owningTemplateParameter = getOwningTemplateParameter();
+ if (owningTemplateParameter != null) {
+ return owningTemplateParameter;
+ }
+ Property associationEnd = getAssociationEnd();
+ if (associationEnd != null) {
+ return associationEnd;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getParameterableElement_OwningTemplateParameter())
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_AssociationEnd());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_Datatype())
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_Class_())
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_OwningAssociation());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetFeaturingClassifiers() {
+ return super.isSetFeaturingClassifiers()
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_Datatype())
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_Class_())
+ || eIsSet(UMLPackage.eINSTANCE.getProperty_OwningAssociation());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Protocol Conformance</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getGeneralMachine <em>General Machine</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolConformanceImpl#getSpecificMachine <em>Specific Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProtocolConformanceImpl
+ extends DirectedRelationshipImpl
+ implements ProtocolConformance {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProtocolConformanceImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getProtocolConformance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolStateMachine basicGetGeneralMachine() {
+ return (ProtocolStateMachine) eVirtualGet(UMLPackage.PROTOCOL_CONFORMANCE__GENERAL_MACHINE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolStateMachine getSpecificMachine() {
+ if (eContainerFeatureID != UMLPackage.PROTOCOL_CONFORMANCE__SPECIFIC_MACHINE)
+ return null;
+ return (ProtocolStateMachine) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getProtocolConformance_GeneralMachine());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSources() {
+ return super.isSetSources()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getProtocolConformance_SpecificMachine());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ ProtocolStateMachine specificMachine = getSpecificMachine();
+ if (specificMachine != null) {
+ return specificMachine;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Protocol State Machine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolStateMachineImpl#getConformances <em>Conformance</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProtocolStateMachineImpl
+ extends StateMachineImpl
+ implements ProtocolStateMachine {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProtocolStateMachineImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getProtocolStateMachine();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolConformance createConformance() {
+ ProtocolConformance newConformance = UMLFactory.eINSTANCE
+ .createProtocolConformance();
+ getConformances().add(newConformance);
+ return newConformance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProtocolTransitions(DiagnosticChain diagnostics,
+ Map context) {
+ return ProtocolStateMachineOperations.validateProtocolTransitions(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEntryExitDo(DiagnosticChain diagnostics, Map context) {
+ return ProtocolStateMachineOperations.validateEntryExitDo(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeepOrShallowHistory(DiagnosticChain diagnostics,
+ Map context) {
+ return ProtocolStateMachineOperations.validateDeepOrShallowHistory(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePortsConnected(DiagnosticChain diagnostics,
+ Map context) {
+ return ProtocolStateMachineOperations.validatePortsConnected(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassifierContext(DiagnosticChain diagnostics,
+ Map context) {
+ return ProtocolStateMachineOperations.validateClassifierContext(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Protocol Transition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getGuard <em>Guard</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getPostCondition <em>Post Condition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getReferreds <em>Referred</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ProtocolTransitionImpl#getPreCondition <em>Pre Condition</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProtocolTransitionImpl
+ extends TransitionImpl
+ implements ProtocolTransition {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProtocolTransitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getProtocolTransition();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getGuard() {
+ Constraint guard = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__GUARD);
+ return guard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getPostCondition() {
+ Constraint postCondition = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__POST_CONDITION);
+ return postCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createPostCondition(EClass eClass) {
+ Constraint newPostCondition = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setPostCondition(newPostCondition);
+ return newPostCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createPostCondition() {
+ Constraint newPostCondition = UMLFactory.eINSTANCE.createConstraint();
+ setPostCondition(newPostCondition);
+ return newPostCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getPreCondition() {
+ Constraint preCondition = (Constraint) eVirtualGet(UMLPackage.PROTOCOL_TRANSITION__PRE_CONDITION);
+ return preCondition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBelongsToPsm(DiagnosticChain diagnostics, Map context) {
+ return ProtocolTransitionOperations.validateBelongsToPsm(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociatedActions(DiagnosticChain diagnostics,
+ Map context) {
+ return ProtocolTransitionOperations.validateAssociatedActions(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRefersToOperation(DiagnosticChain diagnostics,
+ Map context) {
+ return ProtocolTransitionOperations.validateRefersToOperation(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean belongsToPSM() {
+ return ProtocolTransitionOperations.belongsToPSM(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Pseudostate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl#getStateMachine <em>State Machine</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.PseudostateImpl#getState <em>State</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PseudostateImpl
+ extends VertexImpl
+ implements Pseudostate {
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final PseudostateKind KIND_EDEFAULT = PseudostateKind.INITIAL_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PseudostateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getPseudostate();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PseudostateKind getKind() {
+ PseudostateKind kind = (PseudostateKind) eVirtualGet(UMLPackage.PSEUDOSTATE__KIND);
+ return kind == null
+ ? KIND_EDEFAULT
+ : kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine getStateMachine() {
+ if (eContainerFeatureID != UMLPackage.PSEUDOSTATE__STATE_MACHINE)
+ return null;
+ return (StateMachine) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getState() {
+ if (eContainerFeatureID != UMLPackage.PSEUDOSTATE__STATE)
+ return null;
+ return (State) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInitialVertex(DiagnosticChain diagnostics,
+ Map context) {
+ return PseudostateOperations.validateInitialVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateHistoryVertices(DiagnosticChain diagnostics,
+ Map context) {
+ return PseudostateOperations.validateHistoryVertices(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateJoinVertex(DiagnosticChain diagnostics, Map context) {
+ return PseudostateOperations.validateJoinVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTransitionsIncoming(DiagnosticChain diagnostics,
+ Map context) {
+ return PseudostateOperations.validateTransitionsIncoming(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateForkVertex(DiagnosticChain diagnostics, Map context) {
+ return PseudostateOperations.validateForkVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTransitionsOutgoing(DiagnosticChain diagnostics,
+ Map context) {
+ return PseudostateOperations.validateTransitionsOutgoing(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateJunctionVertex(DiagnosticChain diagnostics,
+ Map context) {
+ return PseudostateOperations.validateJunctionVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateChoiceVertex(DiagnosticChain diagnostics, Map context) {
+ return PseudostateOperations.validateChoiceVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOutgoingFromInitial(DiagnosticChain diagnostics,
+ Map context) {
+ return PseudostateOperations.validateOutgoingFromInitial(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ StateMachine stateMachine = getStateMachine();
+ if (stateMachine != null) {
+ return stateMachine;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getPseudostate_StateMachine());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ State state = getState();
+ if (state != null) {
+ return state;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Qualifier Value</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl#getQualifier <em>Qualifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.QualifierValueImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class QualifierValueImpl
+ extends ElementImpl
+ implements QualifierValue {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected QualifierValueImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getQualifierValue();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetQualifier() {
+ return (Property) eVirtualGet(UMLPackage.QUALIFIER_VALUE__QUALIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin basicGetValue() {
+ return (InputPin) eVirtualGet(UMLPackage.QUALIFIER_VALUE__VALUE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateQualifierAttribute(DiagnosticChain diagnostics,
+ Map context) {
+ return QualifierValueOperations.validateQualifierAttribute(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOfQualifier(DiagnosticChain diagnostics,
+ Map context) {
+ return QualifierValueOperations.validateTypeOfQualifier(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfQualifier(DiagnosticChain diagnostics,
+ Map context) {
+ return QualifierValueOperations.validateMultiplicityOfQualifier(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Raise Exception Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RaiseExceptionActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RaiseExceptionActionImpl#getException <em>Exception</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RaiseExceptionActionImpl
+ extends ActionImpl
+ implements RaiseExceptionAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RaiseExceptionActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRaiseExceptionAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getException() {
+ InputPin exception = (InputPin) eVirtualGet(UMLPackage.RAISE_EXCEPTION_ACTION__EXCEPTION);
+ return exception;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createException(EClass eClass) {
+ InputPin newException = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setException(newException);
+ return newException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createException() {
+ InputPin newException = UMLFactory.eINSTANCE.createInputPin();
+ setException(newException);
+ return newException;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Extent Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl#getResult <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadExtentActionImpl#getClassifier <em>Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadExtentActionImpl
+ extends ActionImpl
+ implements ReadExtentAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadExtentActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadExtentAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetClassifier() {
+ return (Classifier) eVirtualGet(UMLPackage.READ_EXTENT_ACTION__CLASSIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeIsClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadExtentActionOperations.validateTypeIsClassifier(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadExtentActionOperations.validateMultiplicityOfResult(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Is Classified Object Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#isDirect <em>Is Direct</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getClassifier <em>Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getResult <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadIsClassifiedObjectActionImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadIsClassifiedObjectActionImpl
+ extends ActionImpl
+ implements ReadIsClassifiedObjectAction {
+
+ /**
+ * The default value of the '{@link #isDirect() <em>Is Direct</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDirect()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_DIRECT_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isDirect() <em>Is Direct</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isDirect()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_DIRECT_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadIsClassifiedObjectActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadIsClassifiedObjectAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isDirect() {
+ return (eFlags & IS_DIRECT_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetClassifier() {
+ return (Classifier) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__CLASSIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_IS_CLASSIFIED_OBJECT_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfInput(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadIsClassifiedObjectActionOperations
+ .validateMultiplicityOfInput(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoType(DiagnosticChain diagnostics, Map context) {
+ return ReadIsClassifiedObjectActionOperations.validateNoType(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfOutput(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadIsClassifiedObjectActionOperations
+ .validateMultiplicityOfOutput(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBooleanResult(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadIsClassifiedObjectActionOperations.validateBooleanResult(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOutputs() {
+ return super.isSetOutputs()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getReadIsClassifiedObjectAction_Result());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Link Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadLinkActionImpl
+ extends LinkActionImpl
+ implements ReadLinkAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadLinkActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadLinkAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneOpenEnd(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkActionOperations.validateOneOpenEnd(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeAndOrdering(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkActionOperations.validateTypeAndOrdering(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompatibleMultiplicity(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkActionOperations.validateCompatibleMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNavigableOpenEnd(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkActionOperations.validateNavigableOpenEnd(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVisibility(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkActionOperations.validateVisibility(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Link Object End Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getObject <em>Object</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getEnd <em>End</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadLinkObjectEndActionImpl
+ extends ActionImpl
+ implements ReadLinkObjectEndAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadLinkObjectEndActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadLinkObjectEndAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetEnd() {
+ return (Property) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__END);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProperty(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndActionOperations.validateProperty(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociationOfAssociation(
+ DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndActionOperations
+ .validateAssociationOfAssociation(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEndsOfAssociation(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndActionOperations.validateEndsOfAssociation(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOfObject(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndActionOperations.validateTypeOfObject(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfObject(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndActionOperations.validateMultiplicityOfObject(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOfResult(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndActionOperations.validateTypeOfResult(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndActionOperations.validateMultiplicityOfResult(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInputs() {
+ return super.isSetInputs()
+ || eIsSet(UMLPackage.eINSTANCE.getReadLinkObjectEndAction_Object());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Link Object End Qualifier Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getObject <em>Object</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getResult <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadLinkObjectEndQualifierActionImpl#getQualifier <em>Qualifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadLinkObjectEndQualifierActionImpl
+ extends ActionImpl
+ implements ReadLinkObjectEndQualifierAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadLinkObjectEndQualifierActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadLinkObjectEndQualifierAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property basicGetQualifier() {
+ return (Property) eVirtualGet(UMLPackage.READ_LINK_OBJECT_END_QUALIFIER_ACTION__QUALIFIER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateQualifierAttribute(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndQualifierActionOperations
+ .validateQualifierAttribute(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateAssociationOfAssociation(
+ DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndQualifierActionOperations
+ .validateAssociationOfAssociation(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEndsOfAssociation(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndQualifierActionOperations
+ .validateEndsOfAssociation(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOfObject(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndQualifierActionOperations.validateTypeOfObject(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfQualifier(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndQualifierActionOperations
+ .validateMultiplicityOfQualifier(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfObject(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndQualifierActionOperations
+ .validateMultiplicityOfObject(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return ReadLinkObjectEndQualifierActionOperations.validateSameType(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadLinkObjectEndQualifierActionOperations
+ .validateMultiplicityOfResult(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInputs() {
+ return super.isSetInputs()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getReadLinkObjectEndQualifierAction_Object());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Self Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadSelfActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadSelfActionImpl
+ extends ActionImpl
+ implements ReadSelfAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadSelfActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadSelfAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_SELF_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateContained(DiagnosticChain diagnostics, Map context) {
+ return ReadSelfActionOperations.validateContained(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotStatic(DiagnosticChain diagnostics, Map context) {
+ return ReadSelfActionOperations.validateNotStatic(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateType(DiagnosticChain diagnostics, Map context) {
+ return ReadSelfActionOperations
+ .validateType(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ReadSelfActionOperations.validateMultiplicity(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Structural Feature Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadStructuralFeatureActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadStructuralFeatureActionImpl
+ extends StructuralFeatureActionImpl
+ implements ReadStructuralFeatureAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadStructuralFeatureActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadStructuralFeatureAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_STRUCTURAL_FEATURE_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeAndOrdering(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadStructuralFeatureActionOperations.validateTypeAndOrdering(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ReadStructuralFeatureActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Read Variable Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadVariableActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReadVariableActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReadVariableActionImpl
+ extends VariableActionImpl
+ implements ReadVariableAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReadVariableActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReadVariableAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.READ_VARIABLE_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeAndOrdering(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadVariableActionOperations.validateTypeAndOrdering(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompatibleMultiplicity(DiagnosticChain diagnostics,
+ Map context) {
+ return ReadVariableActionOperations.validateCompatibleMultiplicity(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Realization</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class RealizationImpl
+ extends AbstractionImpl
+ implements Realization {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RealizationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reception</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReceptionImpl#getSignal <em>Signal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReceptionImpl
+ extends BehavioralFeatureImpl
+ implements Reception {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReceptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReception();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Signal basicGetSignal() {
+ return (Signal) eVirtualGet(UMLPackage.RECEPTION__SIGNAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotQuery(DiagnosticChain diagnostics, Map context) {
+ return ReceptionOperations.validateNotQuery(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reclassify Object Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#isReplaceAll <em>Is Replace All</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getOldClassifiers <em>Old Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getNewClassifiers <em>New Classifier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReclassifyObjectActionImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReclassifyObjectActionImpl
+ extends ActionImpl
+ implements ReclassifyObjectAction {
+
+ /**
+ * The default value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REPLACE_ALL_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReplaceAll() <em>Is Replace All</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReplaceAll()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REPLACE_ALL_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReclassifyObjectActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReclassifyObjectAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReplaceAll() {
+ return (eFlags & IS_REPLACE_ALL_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.RECLASSIFY_OBJECT_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassifierNotAbstract(DiagnosticChain diagnostics,
+ Map context) {
+ return ReclassifyObjectActionOperations.validateClassifierNotAbstract(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ReclassifyObjectActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputPin(DiagnosticChain diagnostics, Map context) {
+ return ReclassifyObjectActionOperations.validateInputPin(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Redefinable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableElementImpl#isLeaf <em>Is Leaf</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class RedefinableElementImpl
+ extends NamedElementImpl
+ implements RedefinableElement {
+
+ /**
+ * The default value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_LEAF_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_LEAF_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RedefinableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRedefinableElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLeaf() {
+ return (eFlags & IS_LEAF_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionContextValid(
+ DiagnosticChain diagnostics, Map context) {
+ return RedefinableElementOperations.validateRedefinitionContextValid(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics,
+ Map context) {
+ return RedefinableElementOperations.validateRedefinitionConsistent(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid(RedefinableElement redefinable) {
+ return RedefinableElementOperations.isRedefinitionContextValid(this,
+ redefinable);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return RedefinableElementOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid() {
+ return RedefinableElementOperations.isRedefinitionContextValid(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Redefinable Template Signature</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getParameters <em>Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getTemplate <em>Template</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getOwnedParameters <em>Owned Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getExtendedSignatures <em>Extended Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getInheritedParameters <em>Inherited Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RedefinableTemplateSignatureImpl#getClassifier <em>Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RedefinableTemplateSignatureImpl
+ extends RedefinableElementImpl
+ implements RedefinableTemplateSignature {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RedefinableTemplateSignatureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRedefinableTemplateSignature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateableElement getTemplate() {
+ if (eContainerFeatureID != UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__TEMPLATE)
+ return null;
+ return (TemplateableElement) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter createOwnedParameter(EClass eClass) {
+ TemplateParameter newOwnedParameter = (TemplateParameter) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter createOwnedParameter() {
+ TemplateParameter newOwnedParameter = UMLFactory.eINSTANCE
+ .createTemplateParameter();
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getClassifier() {
+ if (eContainerFeatureID != UMLPackage.REDEFINABLE_TEMPLATE_SIGNATURE__CLASSIFIER)
+ return null;
+ return (Classifier) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwnElements(DiagnosticChain diagnostics, Map context) {
+ return TemplateSignatureOperations.validateOwnElements(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInheritedParameters(DiagnosticChain diagnostics,
+ Map context) {
+ return RedefinableTemplateSignatureOperations
+ .validateInheritedParameters(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return RedefinableTemplateSignatureOperations.isConsistentWith(this,
+ redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateableElement template = getTemplate();
+ if (template != null) {
+ return template;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getTemplateSignature_Template());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateSignature_OwnedParameter());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return super.isSetRedefinedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getRedefinableTemplateSignature_ExtendedSignature());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Region</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#isLeaf <em>Is Leaf</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getSubvertices <em>Subvertex</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getTransitions <em>Transition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getState <em>State</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getExtendedRegion <em>Extended Region</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RegionImpl#getStateMachine <em>State Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RegionImpl
+ extends NamespaceImpl
+ implements Region {
+
+ /**
+ * The default value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_LEAF_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_LEAF_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RegionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRegion();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinitionContexts() {
+ return !getRedefinitionContexts().isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLeaf() {
+ return (eFlags & IS_LEAF_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Vertex createSubvertex(EClass eClass) {
+ Vertex newSubvertex = (Vertex) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getSubvertices().add(newSubvertex);
+ return newSubvertex;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition createTransition(EClass eClass) {
+ Transition newTransition = (Transition) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getTransitions().add(newTransition);
+ return newTransition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition createTransition() {
+ Transition newTransition = UMLFactory.eINSTANCE.createTransition();
+ getTransitions().add(newTransition);
+ return newTransition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State getState() {
+ if (eContainerFeatureID != UMLPackage.REGION__STATE)
+ return null;
+ return (State) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region basicGetExtendedRegion() {
+ return (Region) eVirtualGet(UMLPackage.REGION__EXTENDED_REGION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine getStateMachine() {
+ if (eContainerFeatureID != UMLPackage.REGION__STATE_MACHINE)
+ return null;
+ return (StateMachine) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionContextValid(
+ DiagnosticChain diagnostics, Map context) {
+ return RedefinableElementOperations.validateRedefinitionContextValid(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics,
+ Map context) {
+ return RedefinableElementOperations.validateRedefinitionConsistent(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid(RedefinableElement redefinable) {
+ return RedefinableElementOperations.isRedefinitionContextValid(this,
+ redefinable);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return RegionOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid() {
+ return RegionOperations.isRedefinitionContextValid(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInitialVertex(DiagnosticChain diagnostics,
+ Map context) {
+ return RegionOperations.validateInitialVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDeepHistoryVertex(DiagnosticChain diagnostics,
+ Map context) {
+ return RegionOperations.validateDeepHistoryVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateShallowHistoryVertex(DiagnosticChain diagnostics,
+ Map context) {
+ return RegionOperations.validateShallowHistoryVertex(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwned(DiagnosticChain diagnostics, Map context) {
+ return RegionOperations.validateOwned(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier redefinitionContext() {
+ return RegionOperations.redefinitionContext(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine containingStateMachine() {
+ return RegionOperations.containingStateMachine(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return eIsSet(UMLPackage.eINSTANCE.getRegion_ExtendedRegion());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getRegion_Subvertex())
+ || eIsSet(UMLPackage.eINSTANCE.getRegion_Transition());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ State state = getState();
+ if (state != null) {
+ return state;
+ }
+ StateMachine stateMachine = getStateMachine();
+ if (stateMachine != null) {
+ return stateMachine;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Relationship</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RelationshipImpl#getRelatedElements <em>Related Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class RelationshipImpl
+ extends ElementImpl
+ implements Relationship {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RelationshipImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRelationship();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Remove Structural Feature Value Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl#isRemoveDuplicates <em>Is Remove Duplicates</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RemoveStructuralFeatureValueActionImpl#getRemoveAt <em>Remove At</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RemoveStructuralFeatureValueActionImpl
+ extends WriteStructuralFeatureActionImpl
+ implements RemoveStructuralFeatureValueAction {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isRemoveDuplicates() <em>Is Remove Duplicates</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRemoveDuplicates()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REMOVE_DUPLICATES_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isRemoveDuplicates() <em>Is Remove Duplicates</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRemoveDuplicates()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REMOVE_DUPLICATES_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RemoveStructuralFeatureValueActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRemoveStructuralFeatureValueAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRemoveDuplicates() {
+ return (eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getRemoveAt() {
+ InputPin removeAt = (InputPin) eVirtualGet(UMLPackage.REMOVE_STRUCTURAL_FEATURE_VALUE_ACTION__REMOVE_AT);
+ return removeAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createRemoveAt(EClass eClass) {
+ InputPin newRemoveAt = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setRemoveAt(newRemoveAt);
+ return newRemoveAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createRemoveAt() {
+ InputPin newRemoveAt = UMLFactory.eINSTANCE.createInputPin();
+ setRemoveAt(newRemoveAt);
+ return newRemoveAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNonUniqueRemoval(DiagnosticChain diagnostics,
+ Map context) {
+ return RemoveStructuralFeatureValueActionOperations
+ .validateNonUniqueRemoval(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Remove Variable Value Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl#isRemoveDuplicates <em>Is Remove Duplicates</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.RemoveVariableValueActionImpl#getRemoveAt <em>Remove At</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RemoveVariableValueActionImpl
+ extends WriteVariableActionImpl
+ implements RemoveVariableValueAction {
+
+ /**
+ * The default value of the '{@link #isRemoveDuplicates() <em>Is Remove Duplicates</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRemoveDuplicates()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REMOVE_DUPLICATES_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isRemoveDuplicates() <em>Is Remove Duplicates</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRemoveDuplicates()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_REMOVE_DUPLICATES_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RemoveVariableValueActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getRemoveVariableValueAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRemoveDuplicates() {
+ return (eFlags & IS_REMOVE_DUPLICATES_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getRemoveAt() {
+ InputPin removeAt = (InputPin) eVirtualGet(UMLPackage.REMOVE_VARIABLE_VALUE_ACTION__REMOVE_AT);
+ return removeAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createRemoveAt(EClass eClass) {
+ InputPin newRemoveAt = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setRemoveAt(newRemoveAt);
+ return newRemoveAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createRemoveAt() {
+ InputPin newRemoveAt = UMLFactory.eINSTANCE.createInputPin();
+ setRemoveAt(newRemoveAt);
+ return newRemoveAt;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUnlimitedNatural(DiagnosticChain diagnostics,
+ Map context) {
+ return RemoveVariableValueActionOperations.validateUnlimitedNatural(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Reply Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getReplyToCall <em>Reply To Call</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getReturnInformation <em>Return Information</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ReplyActionImpl#getReplyValues <em>Reply Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ReplyActionImpl
+ extends ActionImpl
+ implements ReplyAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ReplyActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getReplyAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger basicGetReplyToCall() {
+ return (Trigger) eVirtualGet(UMLPackage.REPLY_ACTION__REPLY_TO_CALL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getReturnInformation() {
+ InputPin returnInformation = (InputPin) eVirtualGet(UMLPackage.REPLY_ACTION__RETURN_INFORMATION);
+ return returnInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createReturnInformation(EClass eClass) {
+ InputPin newReturnInformation = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setReturnInformation(newReturnInformation);
+ return newReturnInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createReturnInformation() {
+ InputPin newReturnInformation = UMLFactory.eINSTANCE.createInputPin();
+ setReturnInformation(newReturnInformation);
+ return newReturnInformation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createReplyValue(EClass eClass) {
+ InputPin newReplyValue = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getReplyValues().add(newReplyValue);
+ return newReplyValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createReplyValue() {
+ InputPin newReplyValue = UMLFactory.eINSTANCE.createInputPin();
+ getReplyValues().add(newReplyValue);
+ return newReplyValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePinsMatchParameter(DiagnosticChain diagnostics,
+ Map context) {
+ return ReplyActionOperations.validatePinsMatchParameter(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEventOnReplyToCallTrigger(
+ DiagnosticChain diagnostics, Map context) {
+ return ReplyActionOperations.validateEventOnReplyToCallTrigger(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Send Object Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendObjectActionImpl#getRequest <em>Request</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SendObjectActionImpl
+ extends InvocationActionImpl
+ implements SendObjectAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SendObjectActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSendObjectAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getTarget() {
+ InputPin target = (InputPin) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__TARGET);
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget(EClass eClass) {
+ InputPin newTarget = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget() {
+ InputPin newTarget = UMLFactory.eINSTANCE.createInputPin();
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getRequest() {
+ InputPin request = (InputPin) eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__REQUEST);
+ return request;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createRequest(EClass eClass) {
+ InputPin newRequest = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setRequest(newRequest);
+ return newRequest;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createRequest() {
+ InputPin newRequest = UMLFactory.eINSTANCE.createInputPin();
+ setRequest(newRequest);
+ return newRequest;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRequest() {
+ return eVirtualGet(UMLPackage.SEND_OBJECT_ACTION__REQUEST) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInputs() {
+ return super.isSetInputs()
+ || eIsSet(UMLPackage.eINSTANCE.getSendObjectAction_Target());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getArguments() {
+ return new EcoreEList.UnmodifiableEList(this, UMLPackage.eINSTANCE
+ .getInvocationAction_Argument(), 0, Collections.EMPTY_LIST
+ .toArray());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Send Operation Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendOperationEventImpl#getOperation <em>Operation</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SendOperationEventImpl
+ extends MessageEventImpl
+ implements SendOperationEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SendOperationEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSendOperationEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation basicGetOperation() {
+ return (Operation) eVirtualGet(UMLPackage.SEND_OPERATION_EVENT__OPERATION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Send Signal Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendSignalActionImpl#getSignal <em>Signal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SendSignalActionImpl
+ extends InvocationActionImpl
+ implements SendSignalAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SendSignalActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSendSignalAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getTarget() {
+ InputPin target = (InputPin) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__TARGET);
+ return target;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget(EClass eClass) {
+ InputPin newTarget = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createTarget() {
+ InputPin newTarget = UMLFactory.eINSTANCE.createInputPin();
+ setTarget(newTarget);
+ return newTarget;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Signal basicGetSignal() {
+ return (Signal) eVirtualGet(UMLPackage.SEND_SIGNAL_ACTION__SIGNAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNumberOrder(DiagnosticChain diagnostics, Map context) {
+ return SendSignalActionOperations.validateNumberOrder(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeOrderingMultiplicity(
+ DiagnosticChain diagnostics, Map context) {
+ return SendSignalActionOperations.validateTypeOrderingMultiplicity(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Send Signal Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SendSignalEventImpl#getSignal <em>Signal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SendSignalEventImpl
+ extends MessageEventImpl
+ implements SendSignalEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SendSignalEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSendSignalEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Signal basicGetSignal() {
+ return (Signal) eVirtualGet(UMLPackage.SEND_SIGNAL_EVENT__SIGNAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sequence Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SequenceNodeImpl#getExecutableNodes <em>Executable Node</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SequenceNodeImpl
+ extends StructuredActivityNodeImpl
+ implements SequenceNode {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SequenceNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSequenceNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutableNode createExecutableNode(EClass eClass) {
+ ExecutableNode newExecutableNode = (ExecutableNode) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getExecutableNodes().add(newExecutableNode);
+ return newExecutableNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetExecutableNodes() {
+ List executableNode = (List) eVirtualGet(UMLPackage.SEQUENCE_NODE__EXECUTABLE_NODE);
+ return executableNode != null && !executableNode.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getNodes() {
+ return getExecutableNodes();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Signal Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SignalEventImpl#getSignal <em>Signal</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SignalEventImpl
+ extends MessageEventImpl
+ implements SignalEvent {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SignalEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSignalEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Signal basicGetSignal() {
+ return (Signal) eVirtualGet(UMLPackage.SIGNAL_EVENT__SIGNAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Signal</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SignalImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SignalImpl
+ extends ClassifierImpl
+ implements Signal {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SignalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSignal();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return super.isSetAttributes()
+ || eIsSet(UMLPackage.eINSTANCE.getSignal_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Slot</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getOwningInstance <em>Owning Instance</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getDefiningFeature <em>Defining Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SlotImpl#getValues <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SlotImpl
+ extends ElementImpl
+ implements Slot {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SlotImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSlot();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification getOwningInstance() {
+ if (eContainerFeatureID != UMLPackage.SLOT__OWNING_INSTANCE)
+ return null;
+ return (InstanceSpecification) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructuralFeature basicGetDefiningFeature() {
+ return (StructuralFeature) eVirtualGet(UMLPackage.SLOT__DEFINING_FEATURE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createValue(EClass eClass) {
+ ValueSpecification newValue = (ValueSpecification) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getValues().add(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ InstanceSpecification owningInstance = getOwningInstance();
+ if (owningInstance != null) {
+ return owningInstance;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getSlot_OwningInstance());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Start Classifier Behavior Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StartClassifierBehaviorActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StartClassifierBehaviorActionImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StartClassifierBehaviorActionImpl
+ extends ActionImpl
+ implements StartClassifierBehaviorAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StartClassifierBehaviorActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStartClassifierBehaviorAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.START_CLASSIFIER_BEHAVIOR_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return StartClassifierBehaviorActionOperations.validateMultiplicity(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeHasClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return StartClassifierBehaviorActionOperations
+ .validateTypeHasClassifier(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>State</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#isLeaf <em>Is Leaf</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getOutgoings <em>Outgoing</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getIncomings <em>Incoming</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getContainer <em>Container</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#isComposite <em>Is Composite</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#isOrthogonal <em>Is Orthogonal</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#isSimple <em>Is Simple</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#isSubmachineState <em>Is Submachine State</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getSubmachine <em>Submachine</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getConnections <em>Connection</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getConnectionPoints <em>Connection Point</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRedefinedState <em>Redefined State</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getStateInvariant <em>State Invariant</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getEntry <em>Entry</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getExit <em>Exit</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getDoActivity <em>Do Activity</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getDeferrableTriggers <em>Deferrable Trigger</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateImpl#getRegions <em>Region</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateImpl
+ extends NamespaceImpl
+ implements State {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_LEAF_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isLeaf() <em>Is Leaf</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLeaf()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_LEAF_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isComposite() <em>Is Composite</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isComposite()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_COMPOSITE_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isOrthogonal() <em>Is Orthogonal</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrthogonal()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORTHOGONAL_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isSimple() <em>Is Simple</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSimple()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SIMPLE_EDEFAULT = false;
+
+ /**
+ * The default value of the '{@link #isSubmachineState() <em>Is Submachine State</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSubmachineState()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_SUBMACHINE_STATE_EDEFAULT = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getState();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinitionContexts() {
+ return !getRedefinitionContexts().isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLeaf() {
+ return (eFlags & IS_LEAF_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region getContainer() {
+ if (eContainerFeatureID != UMLPackage.STATE__CONTAINER)
+ return null;
+ return (Region) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine basicGetSubmachine() {
+ return (StateMachine) eVirtualGet(UMLPackage.STATE__SUBMACHINE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectionPointReference createConnection() {
+ ConnectionPointReference newConnection = UMLFactory.eINSTANCE
+ .createConnectionPointReference();
+ getConnections().add(newConnection);
+ return newConnection;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pseudostate createConnectionPoint() {
+ Pseudostate newConnectionPoint = UMLFactory.eINSTANCE
+ .createPseudostate();
+ getConnectionPoints().add(newConnectionPoint);
+ return newConnectionPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State basicGetRedefinedState() {
+ return (State) eVirtualGet(UMLPackage.STATE__REDEFINED_STATE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getStateInvariant() {
+ Constraint stateInvariant = (Constraint) eVirtualGet(UMLPackage.STATE__STATE_INVARIANT);
+ return stateInvariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createStateInvariant(EClass eClass) {
+ Constraint newStateInvariant = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setStateInvariant(newStateInvariant);
+ return newStateInvariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createStateInvariant() {
+ Constraint newStateInvariant = UMLFactory.eINSTANCE.createConstraint();
+ setStateInvariant(newStateInvariant);
+ return newStateInvariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getEntry() {
+ Behavior entry = (Behavior) eVirtualGet(UMLPackage.STATE__ENTRY);
+ return entry;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createEntry(EClass eClass) {
+ Behavior newEntry = (Behavior) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setEntry(newEntry);
+ return newEntry;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createEntry() {
+ Behavior newEntry = UMLFactory.eINSTANCE.createBehavior();
+ setEntry(newEntry);
+ return newEntry;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getExit() {
+ Behavior exit = (Behavior) eVirtualGet(UMLPackage.STATE__EXIT);
+ return exit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createExit(EClass eClass) {
+ Behavior newExit = (Behavior) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setExit(newExit);
+ return newExit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createExit() {
+ Behavior newExit = UMLFactory.eINSTANCE.createBehavior();
+ setExit(newExit);
+ return newExit;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getDoActivity() {
+ Behavior doActivity = (Behavior) eVirtualGet(UMLPackage.STATE__DO_ACTIVITY);
+ return doActivity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createDoActivity(EClass eClass) {
+ Behavior newDoActivity = (Behavior) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setDoActivity(newDoActivity);
+ return newDoActivity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createDoActivity() {
+ Behavior newDoActivity = UMLFactory.eINSTANCE.createBehavior();
+ setDoActivity(newDoActivity);
+ return newDoActivity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createDeferrableTrigger() {
+ Trigger newDeferrableTrigger = UMLFactory.eINSTANCE.createTrigger();
+ getDeferrableTriggers().add(newDeferrableTrigger);
+ return newDeferrableTrigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region createRegion() {
+ Region newRegion = UMLFactory.eINSTANCE.createRegion();
+ getRegions().add(newRegion);
+ return newRegion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionContextValid(
+ DiagnosticChain diagnostics, Map context) {
+ return RedefinableElementOperations.validateRedefinitionContextValid(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRedefinitionConsistent(DiagnosticChain diagnostics,
+ Map context) {
+ return RedefinableElementOperations.validateRedefinitionConsistent(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid(RedefinableElement redefinable) {
+ return RedefinableElementOperations.isRedefinitionContextValid(this,
+ redefinable);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return StateOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid() {
+ return StateOperations.isRedefinitionContextValid(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateRegions(DiagnosticChain diagnostics, Map context) {
+ return StateOperations.validateRegions(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSubmachineStates(DiagnosticChain diagnostics,
+ Map context) {
+ return StateOperations.validateSubmachineStates(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateDestinationsOrSourcesOfTransitions(
+ DiagnosticChain diagnostics, Map context) {
+ return StateOperations.validateDestinationsOrSourcesOfTransitions(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSubmachineOrRegions(DiagnosticChain diagnostics,
+ Map context) {
+ return StateOperations.validateSubmachineOrRegions(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompositeStates(DiagnosticChain diagnostics,
+ Map context) {
+ return StateOperations.validateCompositeStates(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEntryOrExit(DiagnosticChain diagnostics, Map context) {
+ return StateOperations.validateEntryOrExit(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier redefinitionContext() {
+ return StateOperations.redefinitionContext(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine containingStateMachine() {
+ return StateOperations.containingStateMachine(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return eIsSet(UMLPackage.eINSTANCE.getState_RedefinedState());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Region container = getContainer();
+ if (container != null) {
+ return container;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getVertex_Container());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getState_Connection())
+ || eIsSet(UMLPackage.eINSTANCE.getState_Region());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>State Invariant</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl#getInvariant <em>Invariant</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateInvariantImpl#getCovereds <em>Covered</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateInvariantImpl
+ extends InteractionFragmentImpl
+ implements StateInvariant {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateInvariantImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStateInvariant();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getInvariant() {
+ Constraint invariant = (Constraint) eVirtualGet(UMLPackage.STATE_INVARIANT__INVARIANT);
+ return invariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createInvariant(EClass eClass) {
+ Constraint newInvariant = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setInvariant(newInvariant);
+ return newInvariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createInvariant() {
+ Constraint newInvariant = UMLFactory.eINSTANCE.createConstraint();
+ setInvariant(newInvariant);
+ return newInvariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetCovereds() {
+ List covered = (List) eVirtualGet(UMLPackage.STATE_INVARIANT__COVERED);
+ return covered != null && !covered.isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>State Machine</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getRegions <em>Region</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getConnectionPoints <em>Connection Point</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StateMachineImpl#getExtendedStateMachine <em>Extended State Machine</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StateMachineImpl
+ extends BehaviorImpl
+ implements StateMachine {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StateMachineImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStateMachine();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region createRegion() {
+ Region newRegion = UMLFactory.eINSTANCE.createRegion();
+ getRegions().add(newRegion);
+ return newRegion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pseudostate createConnectionPoint() {
+ Pseudostate newConnectionPoint = UMLFactory.eINSTANCE
+ .createPseudostate();
+ getConnectionPoints().add(newConnectionPoint);
+ return newConnectionPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine basicGetExtendedStateMachine() {
+ return (StateMachine) eVirtualGet(UMLPackage.STATE_MACHINE__EXTENDED_STATE_MACHINE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateClassifierContext(DiagnosticChain diagnostics,
+ Map context) {
+ return StateMachineOperations.validateClassifierContext(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateContextClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return StateMachineOperations.validateContextClassifier(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateConnectionPoints(DiagnosticChain diagnostics,
+ Map context) {
+ return StateMachineOperations.validateConnectionPoints(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMethod(DiagnosticChain diagnostics, Map context) {
+ return StateMachineOperations
+ .validateMethod(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace LCA(State s1, State s2) {
+ return StateMachineOperations.LCA(this, s1, s2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean ancestor(State s1, State s2) {
+ return StateMachineOperations.ancestor(this, s1, s2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRedefinitionContextValid() {
+ return StateMachineOperations.isRedefinitionContextValid(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return StateMachineOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE.getStateMachine_Region())
+ || eIsSet(UMLPackage.eINSTANCE.getStateMachine_ConnectionPoint());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Stereotype</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StereotypeImpl#getIcons <em>Icon</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StereotypeImpl
+ extends ClassImpl
+ implements Stereotype {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StereotypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStereotype();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNameNotClash(DiagnosticChain diagnostics, Map context) {
+ return StereotypeOperations.validateNameNotClash(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGeneralize(DiagnosticChain diagnostics, Map context) {
+ return StereotypeOperations.validateGeneralize(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getTemplateBindings <em>Template Binding</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getSubExpressions <em>Sub Expression</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StringExpressionImpl#getOwningExpression <em>Owning Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StringExpressionImpl
+ extends ExpressionImpl
+ implements StringExpression {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StringExpressionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStringExpression();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE
+ .createTemplateBinding();
+ getTemplateBindings().add(newTemplateBinding);
+ return newTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getOwnedTemplateSignature() {
+ TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.STRING_EXPRESSION__OWNED_TEMPLATE_SIGNATURE);
+ return ownedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature(EClass eClass) {
+ TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature() {
+ TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE
+ .createTemplateSignature();
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringExpression createSubExpression() {
+ StringExpression newSubExpression = UMLFactory.eINSTANCE
+ .createStringExpression();
+ getSubExpressions().add(newSubExpression);
+ return newSubExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringExpression getOwningExpression() {
+ if (eContainerFeatureID != UMLPackage.STRING_EXPRESSION__OWNING_EXPRESSION)
+ return null;
+ return (StringExpression) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplate() {
+ return TemplateableElementOperations.isTemplate(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOperands(DiagnosticChain diagnostics, Map context) {
+ return StringExpressionOperations.validateOperands(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSubexpressions(DiagnosticChain diagnostics,
+ Map context) {
+ return StringExpressionOperations.validateSubexpressions(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String stringValue() {
+ return StringExpressionOperations.stringValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateableElement_TemplateBinding())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateableElement_OwnedTemplateSignature())
+ || eIsSet(UMLPackage.eINSTANCE.getStringExpression_SubExpression());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ StringExpression owningExpression = getOwningExpression();
+ if (owningExpression != null) {
+ return owningExpression;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Structural Feature Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl#getStructuralFeature <em>Structural Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureActionImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class StructuralFeatureActionImpl
+ extends ActionImpl
+ implements StructuralFeatureAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StructuralFeatureActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStructuralFeatureAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructuralFeature basicGetStructuralFeature() {
+ return (StructuralFeature) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__STRUCTURAL_FEATURE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotStatic(DiagnosticChain diagnostics, Map context) {
+ return StructuralFeatureActionOperations.validateNotStatic(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return StructuralFeatureActionOperations.validateSameType(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return StructuralFeatureActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateVisibility(DiagnosticChain diagnostics, Map context) {
+ return StructuralFeatureActionOperations.validateVisibility(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneFeaturingClassifier(DiagnosticChain diagnostics,
+ Map context) {
+ return StructuralFeatureActionOperations
+ .validateOneFeaturingClassifier(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Structural Feature</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#isOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#isUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getUpper <em>Upper</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getUpperValue <em>Upper Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#getLowerValue <em>Lower Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuralFeatureImpl#isReadOnly <em>Is Read Only</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class StructuralFeatureImpl
+ extends FeatureImpl
+ implements StructuralFeature {
+
+ /**
+ * The default value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ORDERED_EFLAG = 1 << 10;
+
+ /**
+ * The default value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_UNIQUE_EFLAG = 1 << 11;
+
+ /**
+ * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPPER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected static final int LOWER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #isReadOnly() <em>Is Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_READ_ONLY_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isReadOnly() <em>Is Read Only</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isReadOnly()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_READ_ONLY_EFLAG = 1 << 12;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StructuralFeatureImpl() {
+ super();
+ eFlags |= IS_UNIQUE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStructuralFeature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return (Type) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOrdered() {
+ return (eFlags & IS_ORDERED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnique() {
+ return (eFlags & IS_UNIQUE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getUpperValue() {
+ ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__UPPER_VALUE);
+ return upperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createUpperValue(EClass eClass) {
+ ValueSpecification newUpperValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setUpperValue(newUpperValue);
+ return newUpperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getLowerValue() {
+ ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.STRUCTURAL_FEATURE__LOWER_VALUE);
+ return lowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createLowerValue(EClass eClass) {
+ ValueSpecification newLowerValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setLowerValue(newLowerValue);
+ return newLowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isReadOnly() {
+ return (eFlags & IS_READ_ONLY_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGt0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateLowerGe0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGeLower(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationNoSideEffects(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationNoSideEffects(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationConstant(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationConstant(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultivalued() {
+ return MultiplicityElementOperations.isMultivalued(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesCardinality(int C) {
+ return MultiplicityElementOperations.includesCardinality(this, C);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesMultiplicity(MultiplicityElement M) {
+ return MultiplicityElementOperations.includesMultiplicity(this, M);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int lowerBound() {
+ return MultiplicityElementOperations.lowerBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int upperBound() {
+ return MultiplicityElementOperations.upperBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Structured Activity Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getElementImports <em>Element Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getPackageImports <em>Package Import</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getOwnedRules <em>Owned Rule</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getImportedMembers <em>Imported Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getSubgroups <em>Subgroup</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedNodes <em>Contained Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getContainedEdges <em>Contained Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getVariables <em>Variable</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getNodes <em>Node</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#isMustIsolate <em>Must Isolate</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getEdges <em>Edge</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredActivityNodeImpl#getActivity <em>Activity</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StructuredActivityNodeImpl
+ extends ActionImpl
+ implements StructuredActivityNode {
+
+ /**
+ * A bit field representing the indices of non-primitive feature values.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits1 = 0;
+
+ /**
+ * The default value of the '{@link #isMustIsolate() <em>Must Isolate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMustIsolate()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean MUST_ISOLATE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isMustIsolate() <em>Must Isolate</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isMustIsolate()
+ * @generated
+ * @ordered
+ */
+ protected static final int MUST_ISOLATE_EFLAG = 1 << 9;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StructuredActivityNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStructuredActivityNode();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ElementImport createElementImport() {
+ ElementImport newElementImport = UMLFactory.eINSTANCE
+ .createElementImport();
+ getElementImports().add(newElementImport);
+ return newElementImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageImport createPackageImport(EClass eClass) {
+ PackageImport newPackageImport = (PackageImport) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getPackageImports().add(newPackageImport);
+ return newPackageImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageImport createPackageImport() {
+ PackageImport newPackageImport = UMLFactory.eINSTANCE
+ .createPackageImport();
+ getPackageImports().add(newPackageImport);
+ return newPackageImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createOwnedRule(EClass eClass) {
+ Constraint newOwnedRule = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedRules().add(newOwnedRule);
+ return newOwnedRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createOwnedRule() {
+ Constraint newOwnedRule = UMLFactory.eINSTANCE.createConstraint();
+ getOwnedRules().add(newOwnedRule);
+ return newOwnedRule;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable createVariable() {
+ Variable newVariable = UMLFactory.eINSTANCE.createVariable();
+ getVariables().add(newVariable);
+ return newVariable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityNode createNode(EClass eClass) {
+ ActivityNode newNode = (ActivityNode) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getNodes().add(newNode);
+ return newNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMustIsolate() {
+ return (eFlags & MUST_ISOLATE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityEdge createEdge(EClass eClass) {
+ ActivityEdge newEdge = (ActivityEdge) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getEdges().add(newEdge);
+ return newEdge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityEdge createEdge() {
+ ActivityEdge newEdge = UMLFactory.eINSTANCE.createActivityEdge();
+ getEdges().add(newEdge);
+ return newEdge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetActivity() {
+ return getActivity() != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMembersAreDistinguishable(
+ DiagnosticChain diagnostics, Map context) {
+ return NamespaceOperations.validateMembersAreDistinguishable(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List getNamesOfMember(NamedElement element) {
+ return NamespaceOperations.getNamesOfMember(this, element);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean membersAreDistinguishable() {
+ return NamespaceOperations.membersAreDistinguishable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List importMembers(List imps) {
+ return NamespaceOperations.importMembers(this, imps);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List excludeCollisions(List imps) {
+ return NamespaceOperations.excludeCollisions(this, imps);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNodesAndEdges(DiagnosticChain diagnostics,
+ Map context) {
+ return ActivityGroupOperations.validateNodesAndEdges(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNotContained(DiagnosticChain diagnostics, Map context) {
+ return ActivityGroupOperations.validateNotContained(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateGroupOwned(DiagnosticChain diagnostics, Map context) {
+ return ActivityGroupOperations.validateGroupOwned(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateEdges(DiagnosticChain diagnostics, Map context) {
+ return StructuredActivityNodeOperations.validateEdges(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected int eVirtualIndexBits(int offset) {
+ switch (offset) {
+ case 0 :
+ return eVirtualIndexBits0;
+ case 1 :
+ return eVirtualIndexBits1;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void eSetVirtualIndexBits(int offset, int newIndexBits) {
+ switch (offset) {
+ case 0 :
+ eVirtualIndexBits0 = newIndexBits;
+ break;
+ case 1 :
+ eVirtualIndexBits1 = newIndexBits;
+ break;
+ default :
+ throw new IndexOutOfBoundsException();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getNamespace_ElementImport())
+ || eIsSet(UMLPackage.eINSTANCE.getNamespace_PackageImport())
+ || isSetOwnedMembers() || isSetSubgroups();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return eIsSet(UMLPackage.eINSTANCE.getNamespace_OwnedRule())
+ || eIsSet(UMLPackage.eINSTANCE.getStructuredActivityNode_Variable());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMembers() {
+ return eIsSet(UMLPackage.eINSTANCE.getNamespace_ImportedMember())
+ || isSetOwnedMembers();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSubgroups() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup basicGetSuperGroup() {
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityGroup getSuperGroup() {
+ ActivityGroup superGroup = basicGetSuperGroup();
+ return superGroup == null
+ ? null
+ : (ActivityGroup) eResolveProxy((InternalEObject) superGroup);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSuperGroup() {
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ if (isSetSuperGroup()) {
+ return basicGetSuperGroup();
+ }
+ if (isSetInActivity()) {
+ return getInActivity();
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner() || isSetSuperGroup() || isSetInActivity();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetContainedNodes() {
+ return eIsSet(UMLPackage.eINSTANCE.getStructuredActivityNode_Node());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetContainedEdges() {
+ return eIsSet(UMLPackage.eINSTANCE.getStructuredActivityNode_Edge());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity getInActivity() {
+ return getActivity();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInActivity(Activity newInActivity) {
+ setActivity(newInActivity);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Structured Classifier</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getRoles <em>Role</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getAttributes <em>Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getMembers <em>Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getFeatures <em>Feature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedAttributes <em>Owned Attribute</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getParts <em>Part</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.StructuredClassifierImpl#getOwnedConnectors <em>Owned Connector</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class StructuredClassifierImpl
+ extends ClassifierImpl
+ implements StructuredClassifier {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StructuredClassifierImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getStructuredClassifier();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute(EClass eClass) {
+ Property newOwnedAttribute = (Property) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createOwnedAttribute() {
+ Property newOwnedAttribute = UMLFactory.eINSTANCE.createProperty();
+ getOwnedAttributes().add(newOwnedAttribute);
+ return newOwnedAttribute;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Connector createOwnedConnector() {
+ Connector newOwnedConnector = UMLFactory.eINSTANCE.createConnector();
+ getOwnedConnectors().add(newOwnedConnector);
+ return newOwnedConnector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicities(DiagnosticChain diagnostics,
+ Map context) {
+ return StructuredClassifierOperations.validateMultiplicities(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRoles() {
+ return eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedMembers() {
+ return super.isSetOwnedMembers()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedAttribute())
+ || eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedConnector());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetAttributes() {
+ return super.isSetAttributes()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getStructuredClassifier_OwnedAttribute());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMembers() {
+ return super.isSetMembers() || isSetRoles();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Substitution</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getSuppliers <em>Supplier</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getClients <em>Client</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getContract <em>Contract</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.SubstitutionImpl#getSubstitutingClassifier <em>Substituting Classifier</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class SubstitutionImpl
+ extends RealizationImpl
+ implements Substitution {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SubstitutionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getSubstitution();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetContract() {
+ return (Classifier) eVirtualGet(UMLPackage.SUBSTITUTION__CONTRACT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier getSubstitutingClassifier() {
+ if (eContainerFeatureID != UMLPackage.SUBSTITUTION__SUBSTITUTING_CLASSIFIER)
+ return null;
+ return (Classifier) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getSubstitution_Contract());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Binding</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getTargets <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSources <em>Source</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getSignature <em>Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getParameterSubstitutions <em>Parameter Substitution</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateBindingImpl#getBoundElement <em>Bound Element</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemplateBindingImpl
+ extends DirectedRelationshipImpl
+ implements TemplateBinding {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateBindingImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTemplateBinding();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature basicGetSignature() {
+ return (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATE_BINDING__SIGNATURE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameterSubstitution createParameterSubstitution() {
+ TemplateParameterSubstitution newParameterSubstitution = UMLFactory.eINSTANCE
+ .createTemplateParameterSubstitution();
+ getParameterSubstitutions().add(newParameterSubstitution);
+ return newParameterSubstitution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateableElement getBoundElement() {
+ if (eContainerFeatureID != UMLPackage.TEMPLATE_BINDING__BOUND_ELEMENT)
+ return null;
+ return (TemplateableElement) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateParameterSubstitution(DiagnosticChain diagnostics,
+ Map context) {
+ return TemplateBindingOperations.validateParameterSubstitution(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOneParameterSubstitution(
+ DiagnosticChain diagnostics, Map context) {
+ return TemplateBindingOperations.validateOneParameterSubstitution(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetTargets() {
+ return super.isSetTargets()
+ || eIsSet(UMLPackage.eINSTANCE.getTemplateBinding_Signature());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateBinding_ParameterSubstitution());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateableElement boundElement = getBoundElement();
+ if (boundElement != null) {
+ return boundElement;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getTemplateBinding_BoundElement());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Parameter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getParameteredElement <em>Parametered Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getSignature <em>Signature</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedParameteredElement <em>Owned Parametered Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterImpl#getOwnedDefault <em>Owned Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemplateParameterImpl
+ extends ElementImpl
+ implements TemplateParameter {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateParameterImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTemplateParameter();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement basicGetParameteredElement() {
+ return (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__PARAMETERED_ELEMENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement basicGetDefault() {
+ return (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__DEFAULT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getSignature() {
+ if (eContainerFeatureID != UMLPackage.TEMPLATE_PARAMETER__SIGNATURE)
+ return null;
+ return (TemplateSignature) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement getOwnedParameteredElement() {
+ ParameterableElement ownedParameteredElement = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_PARAMETERED_ELEMENT);
+ return ownedParameteredElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement createOwnedParameteredElement(EClass eClass) {
+ ParameterableElement newOwnedParameteredElement = (ParameterableElement) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedParameteredElement(newOwnedParameteredElement);
+ return newOwnedParameteredElement;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement getOwnedDefault() {
+ ParameterableElement ownedDefault = (ParameterableElement) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER__OWNED_DEFAULT);
+ return ownedDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement createOwnedDefault(EClass eClass) {
+ ParameterableElement newOwnedDefault = (ParameterableElement) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedDefault(newOwnedDefault);
+ return newOwnedDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMustBeCompatible(DiagnosticChain diagnostics,
+ Map context) {
+ return TemplateParameterOperations.validateMustBeCompatible(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateSignature signature = getSignature();
+ if (signature != null) {
+ return signature;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getTemplateParameter_Signature());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Parameter Substitution</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getActuals <em>Actual</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getFormal <em>Formal</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getOwnedActuals <em>Owned Actual</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateParameterSubstitutionImpl#getTemplateBinding <em>Template Binding</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemplateParameterSubstitutionImpl
+ extends ElementImpl
+ implements TemplateParameterSubstitution {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateParameterSubstitutionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTemplateParameterSubstitution();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter basicGetFormal() {
+ return (TemplateParameter) eVirtualGet(UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__FORMAL);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterableElement createOwnedActual(EClass eClass) {
+ ParameterableElement newOwnedActual = (ParameterableElement) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getOwnedActuals().add(newOwnedActual);
+ return newOwnedActual;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding getTemplateBinding() {
+ if (eContainerFeatureID != UMLPackage.TEMPLATE_PARAMETER_SUBSTITUTION__TEMPLATE_BINDING)
+ return null;
+ return (TemplateBinding) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMustBeCompatible(DiagnosticChain diagnostics,
+ Map context) {
+ return TemplateParameterSubstitutionOperations
+ .validateMustBeCompatible(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE
+ .getTemplateParameterSubstitution_OwnedActual());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateBinding templateBinding = getTemplateBinding();
+ if (templateBinding != null) {
+ return templateBinding;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Template Signature</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getParameters <em>Parameter</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getTemplate <em>Template</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateSignatureImpl#getOwnedParameters <em>Owned Parameter</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TemplateSignatureImpl
+ extends ElementImpl
+ implements TemplateSignature {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateSignatureImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTemplateSignature();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateableElement getTemplate() {
+ if (eContainerFeatureID != UMLPackage.TEMPLATE_SIGNATURE__TEMPLATE)
+ return null;
+ return (TemplateableElement) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter createOwnedParameter(EClass eClass) {
+ TemplateParameter newOwnedParameter = (TemplateParameter) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter createOwnedParameter() {
+ TemplateParameter newOwnedParameter = UMLFactory.eINSTANCE
+ .createTemplateParameter();
+ getOwnedParameters().add(newOwnedParameter);
+ return newOwnedParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwnElements(DiagnosticChain diagnostics, Map context) {
+ return TemplateSignatureOperations.validateOwnElements(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ TemplateableElement template = getTemplate();
+ if (template != null) {
+ return template;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwner() {
+ return super.isSetOwner()
+ || eIsSet(UMLPackage.eINSTANCE.getTemplateSignature_Template());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Templateable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl#getTemplateBindings <em>Template Binding</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TemplateableElementImpl#getOwnedTemplateSignature <em>Owned Template Signature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TemplateableElementImpl
+ extends ElementImpl
+ implements TemplateableElement {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TemplateableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTemplateableElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBinding newTemplateBinding = UMLFactory.eINSTANCE
+ .createTemplateBinding();
+ getTemplateBindings().add(newTemplateBinding);
+ return newTemplateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature getOwnedTemplateSignature() {
+ TemplateSignature ownedTemplateSignature = (TemplateSignature) eVirtualGet(UMLPackage.TEMPLATEABLE_ELEMENT__OWNED_TEMPLATE_SIGNATURE);
+ return ownedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature(EClass eClass) {
+ TemplateSignature newOwnedTemplateSignature = (TemplateSignature) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createOwnedTemplateSignature() {
+ TemplateSignature newOwnedTemplateSignature = UMLFactory.eINSTANCE
+ .createTemplateSignature();
+ setOwnedTemplateSignature(newOwnedTemplateSignature);
+ return newOwnedTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isTemplate() {
+ return TemplateableElementOperations.isTemplate(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Test Identity Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getFirst <em>First</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getSecond <em>Second</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TestIdentityActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TestIdentityActionImpl
+ extends ActionImpl
+ implements TestIdentityAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TestIdentityActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTestIdentityAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getFirst() {
+ InputPin first = (InputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__FIRST);
+ return first;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createFirst(EClass eClass) {
+ InputPin newFirst = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setFirst(newFirst);
+ return newFirst;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createFirst() {
+ InputPin newFirst = UMLFactory.eINSTANCE.createInputPin();
+ setFirst(newFirst);
+ return newFirst;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getSecond() {
+ InputPin second = (InputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__SECOND);
+ return second;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createSecond(EClass eClass) {
+ InputPin newSecond = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setSecond(newSecond);
+ return newSecond;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createSecond() {
+ InputPin newSecond = UMLFactory.eINSTANCE.createInputPin();
+ setSecond(newSecond);
+ return newSecond;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.TEST_IDENTITY_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoType(DiagnosticChain diagnostics, Map context) {
+ return TestIdentityActionOperations.validateNoType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return TestIdentityActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateResultIsBoolean(DiagnosticChain diagnostics,
+ Map context) {
+ return TestIdentityActionOperations.validateResultIsBoolean(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetInputs() {
+ return super.isSetInputs()
+ || eIsSet(UMLPackage.eINSTANCE.getTestIdentityAction_First())
+ || eIsSet(UMLPackage.eINSTANCE.getTestIdentityAction_Second());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Constraint</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeConstraintImpl#getSpecification <em>Specification</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeConstraintImpl
+ extends IntervalConstraintImpl
+ implements TimeConstraint {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TimeConstraintImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTimeConstraint();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getSpecification() {
+ ValueSpecification specification = (ValueSpecification) eVirtualGet(UMLPackage.TIME_CONSTRAINT__SPECIFICATION);
+ return specification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createSpecification(EClass eClass) {
+ ValueSpecification newSpecification = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setSpecification(newSpecification);
+ return newSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetSpecification() {
+ return eVirtualGet(UMLPackage.TIME_CONSTRAINT__SPECIFICATION) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Event</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl#isRelative <em>Is Relative</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeEventImpl#getWhen <em>When</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeEventImpl
+ extends EventImpl
+ implements TimeEvent {
+
+ /**
+ * The default value of the '{@link #isRelative() <em>Is Relative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRelative()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_RELATIVE_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isRelative() <em>Is Relative</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isRelative()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_RELATIVE_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TimeEventImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTimeEvent();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isRelative() {
+ return (eFlags & IS_RELATIVE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getWhen() {
+ ValueSpecification when = (ValueSpecification) eVirtualGet(UMLPackage.TIME_EVENT__WHEN);
+ return when;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createWhen(EClass eClass) {
+ ValueSpecification newWhen = (ValueSpecification) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setWhen(newWhen);
+ return newWhen;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStartingTime(DiagnosticChain diagnostics, Map context) {
+ return TimeEventOperations.validateStartingTime(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Expression</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl#isFirstTime <em>First Time</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeExpressionImpl#getEvent <em>Event</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeExpressionImpl
+ extends ValueSpecificationImpl
+ implements TimeExpression {
+
+ /**
+ * The default value of the '{@link #isFirstTime() <em>First Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFirstTime()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean FIRST_TIME_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isFirstTime() <em>First Time</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isFirstTime()
+ * @generated
+ * @ordered
+ */
+ protected static final int FIRST_TIME_EFLAG = 1 << 8;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TimeExpressionImpl() {
+ super();
+ eFlags |= FIRST_TIME_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTimeExpression();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isFirstTime() {
+ return (eFlags & FIRST_TIME_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NamedElement basicGetEvent() {
+ return (NamedElement) eVirtualGet(UMLPackage.TIME_EXPRESSION__EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Interval</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl#getMax <em>Max</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeIntervalImpl#getMin <em>Min</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeIntervalImpl
+ extends IntervalImpl
+ implements TimeInterval {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TimeIntervalImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTimeInterval();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetMax() {
+ return (ValueSpecification) eVirtualGet(UMLPackage.TIME_INTERVAL__MAX);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMax() {
+ return eVirtualGet(UMLPackage.TIME_INTERVAL__MAX) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification basicGetMin() {
+ return (ValueSpecification) eVirtualGet(UMLPackage.TIME_INTERVAL__MIN);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetMin() {
+ return eVirtualGet(UMLPackage.TIME_INTERVAL__MIN) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Time Observation Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeObservationActionImpl#getNow <em>Now</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TimeObservationActionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TimeObservationActionImpl
+ extends WriteStructuralFeatureActionImpl
+ implements TimeObservationAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TimeObservationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTimeObservationAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getValue() {
+ InputPin value = (InputPin) eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VALUE);
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue(EClass eClass) {
+ InputPin newValue = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue() {
+ InputPin newValue = UMLFactory.eINSTANCE.createInputPin();
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetValue() {
+ return eVirtualGet(UMLPackage.TIME_OBSERVATION_ACTION__VALUE) != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputValueTimeExpression(
+ DiagnosticChain diagnostics, Map context) {
+ return TimeObservationActionOperations
+ .validateInputValueTimeExpression(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Transition</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getRedefinedElements <em>Redefined Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getRedefinitionContexts <em>Redefinition Context</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getKind <em>Kind</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getContainer <em>Container</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getTarget <em>Target</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getRedefinedTransition <em>Redefined Transition</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getGuard <em>Guard</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getEffect <em>Effect</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getTriggers <em>Trigger</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TransitionImpl#getSource <em>Source</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TransitionImpl
+ extends RedefinableElementImpl
+ implements Transition {
+
+ /**
+ * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected static final TransitionKind KIND_EDEFAULT = TransitionKind.INTERNAL_LITERAL;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TransitionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTransition();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinitionContexts() {
+ return !getRedefinitionContexts().isEmpty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TransitionKind getKind() {
+ TransitionKind kind = (TransitionKind) eVirtualGet(UMLPackage.TRANSITION__KIND);
+ return kind == null
+ ? KIND_EDEFAULT
+ : kind;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region getContainer() {
+ if (eContainerFeatureID != UMLPackage.TRANSITION__CONTAINER)
+ return null;
+ return (Region) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Vertex basicGetTarget() {
+ return (Vertex) eVirtualGet(UMLPackage.TRANSITION__TARGET);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition basicGetRedefinedTransition() {
+ return (Transition) eVirtualGet(UMLPackage.TRANSITION__REDEFINED_TRANSITION);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint getGuard() {
+ Constraint guard = (Constraint) eVirtualGet(UMLPackage.TRANSITION__GUARD);
+ return guard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createGuard(EClass eClass) {
+ Constraint newGuard = (Constraint) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setGuard(newGuard);
+ return newGuard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createGuard() {
+ Constraint newGuard = UMLFactory.eINSTANCE.createConstraint();
+ setGuard(newGuard);
+ return newGuard;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior getEffect() {
+ Behavior effect = (Behavior) eVirtualGet(UMLPackage.TRANSITION__EFFECT);
+ return effect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createEffect(EClass eClass) {
+ Behavior newEffect = (Behavior) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setEffect(newEffect);
+ return newEffect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createEffect() {
+ Behavior newEffect = UMLFactory.eINSTANCE.createBehavior();
+ setEffect(newEffect);
+ return newEffect;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createTrigger() {
+ Trigger newTrigger = UMLFactory.eINSTANCE.createTrigger();
+ getTriggers().add(newTrigger);
+ return newTrigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Vertex basicGetSource() {
+ return (Vertex) eVirtualGet(UMLPackage.TRANSITION__SOURCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateForkSegmentGuards(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateForkSegmentGuards(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateJoinSegmentGuards(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateJoinSegmentGuards(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateForkSegmentState(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateForkSegmentState(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateJoinSegmentState(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateJoinSegmentState(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOutgoingPseudostates(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateOutgoingPseudostates(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInitialTransition(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateInitialTransition(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSignaturesCompatible(DiagnosticChain diagnostics,
+ Map context) {
+ return TransitionOperations.validateSignaturesCompatible(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier redefinitionContext() {
+ return TransitionOperations.redefinitionContext(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine containingStateMachine() {
+ return TransitionOperations.containingStateMachine(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isConsistentWith(RedefinableElement redefinee) {
+ return TransitionOperations.isConsistentWith(this, redefinee);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Region container = getContainer();
+ if (container != null) {
+ return container;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetNamespace() {
+ return super.isSetNamespace()
+ || eIsSet(UMLPackage.eINSTANCE.getTransition_Container());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetRedefinedElements() {
+ return super.isSetRedefinedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getTransition_RedefinedTransition());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Trigger</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TriggerImpl#getEvent <em>Event</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TriggerImpl#getPorts <em>Port</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TriggerImpl
+ extends NamedElementImpl
+ implements Trigger {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TriggerImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTrigger();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Event basicGetEvent() {
+ return (Event) eVirtualGet(UMLPackage.TRIGGER__EVENT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TypeImpl#getPackage <em>Package</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TypeImpl
+ extends PackageableElementImpl
+ implements Type {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean conformsTo(Type other) {
+ return TypeOperations.conformsTo(this, other);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ org.eclipse.uml2.uml.Package package_ = getPackage();
+ if (package_ != null) {
+ return package_;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Typed Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.TypedElementImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class TypedElementImpl
+ extends NamedElementImpl
+ implements TypedElement {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TypedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getTypedElement();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return (Type) eVirtualGet(UMLPackage.TYPED_ELEMENT__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UMLFactoryImpl
+ extends EFactoryImpl
+ implements UMLFactory {
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UMLFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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$
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Comment createComment() {
+ CommentImpl comment = new CommentImpl();
+ return comment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Dependency createDependency() {
+ DependencyImpl dependency = new DependencyImpl();
+ return dependency;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameter createTemplateParameter() {
+ TemplateParameterImpl templateParameter = new TemplateParameterImpl();
+ return templateParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateSignature createTemplateSignature() {
+ TemplateSignatureImpl templateSignature = new TemplateSignatureImpl();
+ return templateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateBinding createTemplateBinding() {
+ TemplateBindingImpl templateBinding = new TemplateBindingImpl();
+ return templateBinding;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TemplateParameterSubstitution createTemplateParameterSubstitution() {
+ TemplateParameterSubstitutionImpl templateParameterSubstitution = new TemplateParameterSubstitutionImpl();
+ return templateParameterSubstitution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ElementImport createElementImport() {
+ ElementImportImpl elementImport = new ElementImportImpl();
+ return elementImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageImport createPackageImport() {
+ PackageImportImpl packageImport = new PackageImportImpl();
+ return packageImport;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Package createPackage() {
+ PackageImpl package_ = new PackageImpl();
+ return package_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PackageMerge createPackageMerge() {
+ PackageMergeImpl packageMerge = new PackageMergeImpl();
+ return packageMerge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProfileApplication createProfileApplication() {
+ ProfileApplicationImpl profileApplication = new ProfileApplicationImpl();
+ return profileApplication;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Profile createProfile() {
+ ProfileImpl profile = new ProfileImpl();
+ return profile;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Stereotype createStereotype() {
+ StereotypeImpl stereotype = new StereotypeImpl();
+ return stereotype;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public org.eclipse.uml2.uml.Class createClass() {
+ ClassImpl class_ = new ClassImpl();
+ return class_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Generalization createGeneralization() {
+ GeneralizationImpl generalization = new GeneralizationImpl();
+ return generalization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneralizationSet createGeneralizationSet() {
+ GeneralizationSetImpl generalizationSet = new GeneralizationSetImpl();
+ return generalizationSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UseCase createUseCase() {
+ UseCaseImpl useCase = new UseCaseImpl();
+ return useCase;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Include createInclude() {
+ IncludeImpl include = new IncludeImpl();
+ return include;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Extend createExtend() {
+ ExtendImpl extend = new ExtendImpl();
+ return extend;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Constraint createConstraint() {
+ ConstraintImpl constraint = new ConstraintImpl();
+ return constraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionPoint createExtensionPoint() {
+ ExtensionPointImpl extensionPoint = new ExtensionPointImpl();
+ return extensionPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Substitution createSubstitution() {
+ SubstitutionImpl substitution = new SubstitutionImpl();
+ return substitution;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Realization createRealization() {
+ RealizationImpl realization = new RealizationImpl();
+ return realization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Abstraction createAbstraction() {
+ AbstractionImpl abstraction = new AbstractionImpl();
+ return abstraction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OpaqueExpression createOpaqueExpression() {
+ OpaqueExpressionImpl opaqueExpression = new OpaqueExpressionImpl();
+ return opaqueExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Parameter createParameter() {
+ ParameterImpl parameter = new ParameterImpl();
+ return parameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectorEnd createConnectorEnd() {
+ ConnectorEndImpl connectorEnd = new ConnectorEndImpl();
+ return connectorEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createProperty() {
+ PropertyImpl property = new PropertyImpl();
+ return property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Deployment createDeployment() {
+ DeploymentImpl deployment = new DeploymentImpl();
+ return deployment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DeploymentSpecification createDeploymentSpecification() {
+ DeploymentSpecificationImpl deploymentSpecification = new DeploymentSpecificationImpl();
+ return deploymentSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Artifact createArtifact() {
+ ArtifactImpl artifact = new ArtifactImpl();
+ return artifact;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Manifestation createManifestation() {
+ ManifestationImpl manifestation = new ManifestationImpl();
+ return manifestation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Operation createOperation() {
+ OperationImpl operation = new OperationImpl();
+ return operation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehavioralFeature createBehavioralFeature() {
+ BehavioralFeatureImpl behavioralFeature = new BehavioralFeatureImpl();
+ return behavioralFeature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Behavior createBehavior() {
+ BehaviorImpl behavior = new BehaviorImpl();
+ return behavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ParameterSet createParameterSet() {
+ ParameterSetImpl parameterSet = new ParameterSetImpl();
+ return parameterSet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataType createDataType() {
+ DataTypeImpl dataType = new DataTypeImpl();
+ return dataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interface createInterface() {
+ InterfaceImpl interface_ = new InterfaceImpl();
+ return interface_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Reception createReception() {
+ ReceptionImpl reception = new ReceptionImpl();
+ return reception;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Signal createSignal() {
+ SignalImpl signal = new SignalImpl();
+ return signal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolStateMachine createProtocolStateMachine() {
+ ProtocolStateMachineImpl protocolStateMachine = new ProtocolStateMachineImpl();
+ return protocolStateMachine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine createStateMachine() {
+ StateMachineImpl stateMachine = new StateMachineImpl();
+ return stateMachine;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region createRegion() {
+ RegionImpl region = new RegionImpl();
+ return region;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Transition createTransition() {
+ TransitionImpl transition = new TransitionImpl();
+ return transition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createTrigger() {
+ TriggerImpl trigger = new TriggerImpl();
+ return trigger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port createPort() {
+ PortImpl port = new PortImpl();
+ return port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public State createState() {
+ StateImpl state = new StateImpl();
+ return state;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectionPointReference createConnectionPointReference() {
+ ConnectionPointReferenceImpl connectionPointReference = new ConnectionPointReferenceImpl();
+ return connectionPointReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pseudostate createPseudostate() {
+ PseudostateImpl pseudostate = new PseudostateImpl();
+ return pseudostate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolConformance createProtocolConformance() {
+ ProtocolConformanceImpl protocolConformance = new ProtocolConformanceImpl();
+ return protocolConformance;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OperationTemplateParameter createOperationTemplateParameter() {
+ OperationTemplateParameterImpl operationTemplateParameter = new OperationTemplateParameterImpl();
+ return operationTemplateParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Association createAssociation() {
+ AssociationImpl association = new AssociationImpl();
+ return association;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConnectableElementTemplateParameter createConnectableElementTemplateParameter() {
+ ConnectableElementTemplateParameterImpl connectableElementTemplateParameter = new ConnectableElementTemplateParameterImpl();
+ return connectableElementTemplateParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CollaborationUse createCollaborationUse() {
+ CollaborationUseImpl collaborationUse = new CollaborationUseImpl();
+ return collaborationUse;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Collaboration createCollaboration() {
+ CollaborationImpl collaboration = new CollaborationImpl();
+ return collaboration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Connector createConnector() {
+ ConnectorImpl connector = new ConnectorImpl();
+ return connector;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RedefinableTemplateSignature createRedefinableTemplateSignature() {
+ RedefinableTemplateSignatureImpl redefinableTemplateSignature = new RedefinableTemplateSignatureImpl();
+ return redefinableTemplateSignature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClassifierTemplateParameter createClassifierTemplateParameter() {
+ ClassifierTemplateParameterImpl classifierTemplateParameter = new ClassifierTemplateParameterImpl();
+ return classifierTemplateParameter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterfaceRealization createInterfaceRealization() {
+ InterfaceRealizationImpl interfaceRealization = new InterfaceRealizationImpl();
+ return interfaceRealization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Extension createExtension() {
+ ExtensionImpl extension = new ExtensionImpl();
+ return extension;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionEnd createExtensionEnd() {
+ ExtensionEndImpl extensionEnd = new ExtensionEndImpl();
+ return extensionEnd;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringExpression createStringExpression() {
+ StringExpressionImpl stringExpression = new StringExpressionImpl();
+ return stringExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Expression createExpression() {
+ ExpressionImpl expression = new ExpressionImpl();
+ return expression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LiteralInteger createLiteralInteger() {
+ LiteralIntegerImpl literalInteger = new LiteralIntegerImpl();
+ return literalInteger;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LiteralString createLiteralString() {
+ LiteralStringImpl literalString = new LiteralStringImpl();
+ return literalString;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LiteralBoolean createLiteralBoolean() {
+ LiteralBooleanImpl literalBoolean = new LiteralBooleanImpl();
+ return literalBoolean;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LiteralNull createLiteralNull() {
+ LiteralNullImpl literalNull = new LiteralNullImpl();
+ return literalNull;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Slot createSlot() {
+ SlotImpl slot = new SlotImpl();
+ return slot;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceSpecification createInstanceSpecification() {
+ InstanceSpecificationImpl instanceSpecification = new InstanceSpecificationImpl();
+ return instanceSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Enumeration createEnumeration() {
+ EnumerationImpl enumeration = new EnumerationImpl();
+ return enumeration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EnumerationLiteral createEnumerationLiteral() {
+ EnumerationLiteralImpl enumerationLiteral = new EnumerationLiteralImpl();
+ return enumerationLiteral;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PrimitiveType createPrimitiveType() {
+ PrimitiveTypeImpl primitiveType = new PrimitiveTypeImpl();
+ return primitiveType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InstanceValue createInstanceValue() {
+ InstanceValueImpl instanceValue = new InstanceValueImpl();
+ return instanceValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LiteralUnlimitedNatural createLiteralUnlimitedNatural() {
+ LiteralUnlimitedNaturalImpl literalUnlimitedNatural = new LiteralUnlimitedNaturalImpl();
+ return literalUnlimitedNatural;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OpaqueBehavior createOpaqueBehavior() {
+ OpaqueBehaviorImpl opaqueBehavior = new OpaqueBehaviorImpl();
+ return opaqueBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FunctionBehavior createFunctionBehavior() {
+ FunctionBehaviorImpl functionBehavior = new FunctionBehaviorImpl();
+ return functionBehavior;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Actor createActor() {
+ ActorImpl actor = new ActorImpl();
+ return actor;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Usage createUsage() {
+ UsageImpl usage = new UsageImpl();
+ return usage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Message createMessage() {
+ MessageImpl message = new MessageImpl();
+ return message;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interaction createInteraction() {
+ InteractionImpl interaction = new InteractionImpl();
+ return interaction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Lifeline createLifeline() {
+ LifelineImpl lifeline = new LifelineImpl();
+ return lifeline;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PartDecomposition createPartDecomposition() {
+ PartDecompositionImpl partDecomposition = new PartDecompositionImpl();
+ return partDecomposition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionUse createInteractionUse() {
+ InteractionUseImpl interactionUse = new InteractionUseImpl();
+ return interactionUse;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Gate createGate() {
+ GateImpl gate = new GateImpl();
+ return gate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Action createAction() {
+ ActionImpl action = new ActionImpl();
+ return action;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityEdge createActivityEdge() {
+ ActivityEdgeImpl activityEdge = new ActivityEdgeImpl();
+ return activityEdge;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity createActivity() {
+ ActivityImpl activity = new ActivityImpl();
+ return activity;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityPartition createActivityPartition() {
+ ActivityPartitionImpl activityPartition = new ActivityPartitionImpl();
+ return activityPartition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructuredActivityNode createStructuredActivityNode() {
+ StructuredActivityNodeImpl structuredActivityNode = new StructuredActivityNodeImpl();
+ return structuredActivityNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable createVariable() {
+ VariableImpl variable = new VariableImpl();
+ return variable;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InterruptibleActivityRegion createInterruptibleActivityRegion() {
+ InterruptibleActivityRegionImpl interruptibleActivityRegion = new InterruptibleActivityRegionImpl();
+ return interruptibleActivityRegion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExceptionHandler createExceptionHandler() {
+ ExceptionHandlerImpl exceptionHandler = new ExceptionHandlerImpl();
+ return exceptionHandler;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createOutputPin() {
+ OutputPinImpl outputPin = new OutputPinImpl();
+ return outputPin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pin createPin() {
+ PinImpl pin = new PinImpl();
+ return pin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createInputPin() {
+ InputPinImpl inputPin = new InputPinImpl();
+ return inputPin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneralOrdering createGeneralOrdering() {
+ GeneralOrderingImpl generalOrdering = new GeneralOrderingImpl();
+ return generalOrdering;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionOperand createInteractionOperand() {
+ InteractionOperandImpl interactionOperand = new InteractionOperandImpl();
+ return interactionOperand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InteractionConstraint createInteractionConstraint() {
+ InteractionConstraintImpl interactionConstraint = new InteractionConstraintImpl();
+ return interactionConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutionOccurrenceSpecification createExecutionOccurrenceSpecification() {
+ ExecutionOccurrenceSpecificationImpl executionOccurrenceSpecification = new ExecutionOccurrenceSpecificationImpl();
+ return executionOccurrenceSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutionEvent createExecutionEvent() {
+ ExecutionEventImpl executionEvent = new ExecutionEventImpl();
+ return executionEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateInvariant createStateInvariant() {
+ StateInvariantImpl stateInvariant = new StateInvariantImpl();
+ return stateInvariant;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActionExecutionSpecification createActionExecutionSpecification() {
+ ActionExecutionSpecificationImpl actionExecutionSpecification = new ActionExecutionSpecificationImpl();
+ return actionExecutionSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BehaviorExecutionSpecification createBehaviorExecutionSpecification() {
+ BehaviorExecutionSpecificationImpl behaviorExecutionSpecification = new BehaviorExecutionSpecificationImpl();
+ return behaviorExecutionSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CreationEvent createCreationEvent() {
+ CreationEventImpl creationEvent = new CreationEventImpl();
+ return creationEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DestructionEvent createDestructionEvent() {
+ DestructionEventImpl destructionEvent = new DestructionEventImpl();
+ return destructionEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SendOperationEvent createSendOperationEvent() {
+ SendOperationEventImpl sendOperationEvent = new SendOperationEventImpl();
+ return sendOperationEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SendSignalEvent createSendSignalEvent() {
+ SendSignalEventImpl sendSignalEvent = new SendSignalEventImpl();
+ return sendSignalEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MessageOccurrenceSpecification createMessageOccurrenceSpecification() {
+ MessageOccurrenceSpecificationImpl messageOccurrenceSpecification = new MessageOccurrenceSpecificationImpl();
+ return messageOccurrenceSpecification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CombinedFragment createCombinedFragment() {
+ CombinedFragmentImpl combinedFragment = new CombinedFragmentImpl();
+ return combinedFragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Continuation createContinuation() {
+ ContinuationImpl continuation = new ContinuationImpl();
+ return continuation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConsiderIgnoreFragment createConsiderIgnoreFragment() {
+ ConsiderIgnoreFragmentImpl considerIgnoreFragment = new ConsiderIgnoreFragmentImpl();
+ return considerIgnoreFragment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CallEvent createCallEvent() {
+ CallEventImpl callEvent = new CallEventImpl();
+ return callEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ChangeEvent createChangeEvent() {
+ ChangeEventImpl changeEvent = new ChangeEventImpl();
+ return changeEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SignalEvent createSignalEvent() {
+ SignalEventImpl signalEvent = new SignalEventImpl();
+ return signalEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AnyReceiveEvent createAnyReceiveEvent() {
+ AnyReceiveEventImpl anyReceiveEvent = new AnyReceiveEventImpl();
+ return anyReceiveEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CreateObjectAction createCreateObjectAction() {
+ CreateObjectActionImpl createObjectAction = new CreateObjectActionImpl();
+ return createObjectAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DestroyObjectAction createDestroyObjectAction() {
+ DestroyObjectActionImpl destroyObjectAction = new DestroyObjectActionImpl();
+ return destroyObjectAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TestIdentityAction createTestIdentityAction() {
+ TestIdentityActionImpl testIdentityAction = new TestIdentityActionImpl();
+ return testIdentityAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadSelfAction createReadSelfAction() {
+ ReadSelfActionImpl readSelfAction = new ReadSelfActionImpl();
+ return readSelfAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadStructuralFeatureAction createReadStructuralFeatureAction() {
+ ReadStructuralFeatureActionImpl readStructuralFeatureAction = new ReadStructuralFeatureActionImpl();
+ return readStructuralFeatureAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClearStructuralFeatureAction createClearStructuralFeatureAction() {
+ ClearStructuralFeatureActionImpl clearStructuralFeatureAction = new ClearStructuralFeatureActionImpl();
+ return clearStructuralFeatureAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoveStructuralFeatureValueAction createRemoveStructuralFeatureValueAction() {
+ RemoveStructuralFeatureValueActionImpl removeStructuralFeatureValueAction = new RemoveStructuralFeatureValueActionImpl();
+ return removeStructuralFeatureValueAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AddStructuralFeatureValueAction createAddStructuralFeatureValueAction() {
+ AddStructuralFeatureValueActionImpl addStructuralFeatureValueAction = new AddStructuralFeatureValueActionImpl();
+ return addStructuralFeatureValueAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndData createLinkEndData() {
+ LinkEndDataImpl linkEndData = new LinkEndDataImpl();
+ return linkEndData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public QualifierValue createQualifierValue() {
+ QualifierValueImpl qualifierValue = new QualifierValueImpl();
+ return qualifierValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadLinkAction createReadLinkAction() {
+ ReadLinkActionImpl readLinkAction = new ReadLinkActionImpl();
+ return readLinkAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndCreationData createLinkEndCreationData() {
+ LinkEndCreationDataImpl linkEndCreationData = new LinkEndCreationDataImpl();
+ return linkEndCreationData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CreateLinkAction createCreateLinkAction() {
+ CreateLinkActionImpl createLinkAction = new CreateLinkActionImpl();
+ return createLinkAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DestroyLinkAction createDestroyLinkAction() {
+ DestroyLinkActionImpl destroyLinkAction = new DestroyLinkActionImpl();
+ return destroyLinkAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LinkEndDestructionData createLinkEndDestructionData() {
+ LinkEndDestructionDataImpl linkEndDestructionData = new LinkEndDestructionDataImpl();
+ return linkEndDestructionData;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClearAssociationAction createClearAssociationAction() {
+ ClearAssociationActionImpl clearAssociationAction = new ClearAssociationActionImpl();
+ return clearAssociationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BroadcastSignalAction createBroadcastSignalAction() {
+ BroadcastSignalActionImpl broadcastSignalAction = new BroadcastSignalActionImpl();
+ return broadcastSignalAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SendObjectAction createSendObjectAction() {
+ SendObjectActionImpl sendObjectAction = new SendObjectActionImpl();
+ return sendObjectAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecificationAction createValueSpecificationAction() {
+ ValueSpecificationActionImpl valueSpecificationAction = new ValueSpecificationActionImpl();
+ return valueSpecificationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeExpression createTimeExpression() {
+ TimeExpressionImpl timeExpression = new TimeExpressionImpl();
+ return timeExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Duration createDuration() {
+ DurationImpl duration = new DurationImpl();
+ return duration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeObservationAction createTimeObservationAction() {
+ TimeObservationActionImpl timeObservationAction = new TimeObservationActionImpl();
+ return timeObservationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValuePin createValuePin() {
+ ValuePinImpl valuePin = new ValuePinImpl();
+ return valuePin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DurationInterval createDurationInterval() {
+ DurationIntervalImpl durationInterval = new DurationIntervalImpl();
+ return durationInterval;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Interval createInterval() {
+ IntervalImpl interval = new IntervalImpl();
+ return interval;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeConstraint createTimeConstraint() {
+ TimeConstraintImpl timeConstraint = new TimeConstraintImpl();
+ return timeConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IntervalConstraint createIntervalConstraint() {
+ IntervalConstraintImpl intervalConstraint = new IntervalConstraintImpl();
+ return intervalConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeInterval createTimeInterval() {
+ TimeIntervalImpl timeInterval = new TimeIntervalImpl();
+ return timeInterval;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DurationObservationAction createDurationObservationAction() {
+ DurationObservationActionImpl durationObservationAction = new DurationObservationActionImpl();
+ return durationObservationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DurationConstraint createDurationConstraint() {
+ DurationConstraintImpl durationConstraint = new DurationConstraintImpl();
+ return durationConstraint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OpaqueAction createOpaqueAction() {
+ OpaqueActionImpl opaqueAction = new OpaqueActionImpl();
+ return opaqueAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SendSignalAction createSendSignalAction() {
+ SendSignalActionImpl sendSignalAction = new SendSignalActionImpl();
+ return sendSignalAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CallOperationAction createCallOperationAction() {
+ CallOperationActionImpl callOperationAction = new CallOperationActionImpl();
+ return callOperationAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CallBehaviorAction createCallBehaviorAction() {
+ CallBehaviorActionImpl callBehaviorAction = new CallBehaviorActionImpl();
+ return callBehaviorAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InformationItem createInformationItem() {
+ InformationItemImpl informationItem = new InformationItemImpl();
+ return informationItem;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InformationFlow createInformationFlow() {
+ InformationFlowImpl informationFlow = new InformationFlowImpl();
+ return informationFlow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Model createModel() {
+ ModelImpl model = new ModelImpl();
+ return model;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadVariableAction createReadVariableAction() {
+ ReadVariableActionImpl readVariableAction = new ReadVariableActionImpl();
+ return readVariableAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ClearVariableAction createClearVariableAction() {
+ ClearVariableActionImpl clearVariableAction = new ClearVariableActionImpl();
+ return clearVariableAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AddVariableValueAction createAddVariableValueAction() {
+ AddVariableValueActionImpl addVariableValueAction = new AddVariableValueActionImpl();
+ return addVariableValueAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RemoveVariableValueAction createRemoveVariableValueAction() {
+ RemoveVariableValueActionImpl removeVariableValueAction = new RemoveVariableValueActionImpl();
+ return removeVariableValueAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RaiseExceptionAction createRaiseExceptionAction() {
+ RaiseExceptionActionImpl raiseExceptionAction = new RaiseExceptionActionImpl();
+ return raiseExceptionAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActionInputPin createActionInputPin() {
+ ActionInputPinImpl actionInputPin = new ActionInputPinImpl();
+ return actionInputPin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadExtentAction createReadExtentAction() {
+ ReadExtentActionImpl readExtentAction = new ReadExtentActionImpl();
+ return readExtentAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReclassifyObjectAction createReclassifyObjectAction() {
+ ReclassifyObjectActionImpl reclassifyObjectAction = new ReclassifyObjectActionImpl();
+ return reclassifyObjectAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadIsClassifiedObjectAction createReadIsClassifiedObjectAction() {
+ ReadIsClassifiedObjectActionImpl readIsClassifiedObjectAction = new ReadIsClassifiedObjectActionImpl();
+ return readIsClassifiedObjectAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StartClassifierBehaviorAction createStartClassifierBehaviorAction() {
+ StartClassifierBehaviorActionImpl startClassifierBehaviorAction = new StartClassifierBehaviorActionImpl();
+ return startClassifierBehaviorAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadLinkObjectEndAction createReadLinkObjectEndAction() {
+ ReadLinkObjectEndActionImpl readLinkObjectEndAction = new ReadLinkObjectEndActionImpl();
+ return readLinkObjectEndAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReadLinkObjectEndQualifierAction createReadLinkObjectEndQualifierAction() {
+ ReadLinkObjectEndQualifierActionImpl readLinkObjectEndQualifierAction = new ReadLinkObjectEndQualifierActionImpl();
+ return readLinkObjectEndQualifierAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CreateLinkObjectAction createCreateLinkObjectAction() {
+ CreateLinkObjectActionImpl createLinkObjectAction = new CreateLinkObjectActionImpl();
+ return createLinkObjectAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptEventAction createAcceptEventAction() {
+ AcceptEventActionImpl acceptEventAction = new AcceptEventActionImpl();
+ return acceptEventAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AcceptCallAction createAcceptCallAction() {
+ AcceptCallActionImpl acceptCallAction = new AcceptCallActionImpl();
+ return acceptCallAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReplyAction createReplyAction() {
+ ReplyActionImpl replyAction = new ReplyActionImpl();
+ return replyAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnmarshallAction createUnmarshallAction() {
+ UnmarshallActionImpl unmarshallAction = new UnmarshallActionImpl();
+ return unmarshallAction;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ControlFlow createControlFlow() {
+ ControlFlowImpl controlFlow = new ControlFlowImpl();
+ return controlFlow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InitialNode createInitialNode() {
+ InitialNodeImpl initialNode = new InitialNodeImpl();
+ return initialNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityParameterNode createActivityParameterNode() {
+ ActivityParameterNodeImpl activityParameterNode = new ActivityParameterNodeImpl();
+ return activityParameterNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ForkNode createForkNode() {
+ ForkNodeImpl forkNode = new ForkNodeImpl();
+ return forkNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FlowFinalNode createFlowFinalNode() {
+ FlowFinalNodeImpl flowFinalNode = new FlowFinalNodeImpl();
+ return flowFinalNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CentralBufferNode createCentralBufferNode() {
+ CentralBufferNodeImpl centralBufferNode = new CentralBufferNodeImpl();
+ return centralBufferNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public MergeNode createMergeNode() {
+ MergeNodeImpl mergeNode = new MergeNodeImpl();
+ return mergeNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DecisionNode createDecisionNode() {
+ DecisionNodeImpl decisionNode = new DecisionNodeImpl();
+ return decisionNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ActivityFinalNode createActivityFinalNode() {
+ ActivityFinalNodeImpl activityFinalNode = new ActivityFinalNodeImpl();
+ return activityFinalNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public JoinNode createJoinNode() {
+ JoinNodeImpl joinNode = new JoinNodeImpl();
+ return joinNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public DataStoreNode createDataStoreNode() {
+ DataStoreNodeImpl dataStoreNode = new DataStoreNodeImpl();
+ return dataStoreNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ObjectFlow createObjectFlow() {
+ ObjectFlowImpl objectFlow = new ObjectFlowImpl();
+ return objectFlow;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SequenceNode createSequenceNode() {
+ SequenceNodeImpl sequenceNode = new SequenceNodeImpl();
+ return sequenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConditionalNode createConditionalNode() {
+ ConditionalNodeImpl conditionalNode = new ConditionalNodeImpl();
+ return conditionalNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Clause createClause() {
+ ClauseImpl clause = new ClauseImpl();
+ return clause;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LoopNode createLoopNode() {
+ LoopNodeImpl loopNode = new LoopNodeImpl();
+ return loopNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpansionNode createExpansionNode() {
+ ExpansionNodeImpl expansionNode = new ExpansionNodeImpl();
+ return expansionNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExpansionRegion createExpansionRegion() {
+ ExpansionRegionImpl expansionRegion = new ExpansionRegionImpl();
+ return expansionRegion;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComponentRealization createComponentRealization() {
+ ComponentRealizationImpl componentRealization = new ComponentRealizationImpl();
+ return componentRealization;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Component createComponent() {
+ ComponentImpl component = new ComponentImpl();
+ return component;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Node createNode() {
+ NodeImpl node = new NodeImpl();
+ return node;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Device createDevice() {
+ DeviceImpl device = new DeviceImpl();
+ return device;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExecutionEnvironment createExecutionEnvironment() {
+ ExecutionEnvironmentImpl executionEnvironment = new ExecutionEnvironmentImpl();
+ return executionEnvironment;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CommunicationPath createCommunicationPath() {
+ CommunicationPathImpl communicationPath = new CommunicationPathImpl();
+ return communicationPath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FinalState createFinalState() {
+ FinalStateImpl finalState = new FinalStateImpl();
+ return finalState;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TimeEvent createTimeEvent() {
+ TimeEventImpl timeEvent = new TimeEventImpl();
+ return timeEvent;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProtocolTransition createProtocolTransition() {
+ ProtocolTransitionImpl protocolTransition = new ProtocolTransitionImpl();
+ return protocolTransition;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AssociationClass createAssociationClass() {
+ AssociationClassImpl associationClass = new AssociationClassImpl();
+ return associationClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertVisibilityKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertCallConcurrencyKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTransitionKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertPseudostateKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertAggregationKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertParameterDirectionKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertParameterEffectKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertConnectorKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMessageKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertMessageSortToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertObjectNodeOrderingKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertInteractionOperatorKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertExpansionKindToString(EDataType eDataType,
+ Object instanceValue) {
+ return instanceValue == null
+ ? null
+ : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UMLPackage getUMLPackage() {
+ return (UMLPackage) getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class UMLPackageImpl
+ extends EPackageImpl
+ implements UMLPackage {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String packageFilename = "uml.ecore"; //$NON-NLS-1$
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass commentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass elementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass directedRelationshipEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass relationshipEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass valueSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dependencyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packageableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass parameterableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateSignatureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateBindingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass templateParameterSubstitutionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namespaceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass elementImportEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packageImportEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass packageMergeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass typeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass profileApplicationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass profileEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stereotypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass behavioredClassifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass redefinableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass generalizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass generalizationSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass featureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass useCaseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass includeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass extendEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass constraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass extensionPointEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass substitutionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass realizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass abstractionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass opaqueExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass parameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass multiplicityElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectorEndEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deploymentTargetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deploymentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deployedArtifactEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deploymentSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass artifactEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass manifestationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass behavioralFeatureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass behaviorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass parameterSetEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interfaceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass receptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass signalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass protocolStateMachineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateMachineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass regionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass vertexEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass transitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass triggerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectionPointReferenceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pseudostateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass protocolConformanceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass operationTemplateParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass structuralFeatureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass associationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectableElementTemplateParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass collaborationUseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass collaborationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass structuredClassifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass connectorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass redefinableTemplateSignatureEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classifierTemplateParameterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interfaceRealizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass encapsulatedClassifierEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass extensionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass extensionEndEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass imageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stringExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass expressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalIntegerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalStringEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalBooleanEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalNullEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass slotEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass enumerationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass enumerationLiteralEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass primitiveTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass instanceValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass literalUnlimitedNaturalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass opaqueBehaviorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass functionBehaviorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass actorEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass usageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass messageEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass messageEndEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionFragmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass lifelineEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass partDecompositionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionUseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass actionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass executableNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityEdgeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityPartitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityGroupEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass structuredActivityNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interruptibleActivityRegionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass exceptionHandlerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass objectNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass outputPinEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass pinEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass inputPinEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass generalOrderingEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass occurrenceSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionOperandEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass interactionConstraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass executionSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass executionOccurrenceSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass executionEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stateInvariantEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass actionExecutionSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass behaviorExecutionSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass creationEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass destructionEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sendOperationEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass messageEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sendSignalEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass messageOccurrenceSpecificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass combinedFragmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass continuationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass considerIgnoreFragmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass callEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass changeEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass signalEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass anyReceiveEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass createObjectActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass destroyObjectActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass testIdentityActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readSelfActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass structuralFeatureActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readStructuralFeatureActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass writeStructuralFeatureActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clearStructuralFeatureActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass removeStructuralFeatureValueActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addStructuralFeatureValueActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkEndDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass qualifierValueEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readLinkActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkEndCreationDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass createLinkActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass writeLinkActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass destroyLinkActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass linkEndDestructionDataEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clearAssociationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass broadcastSignalActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass invocationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sendObjectActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass valueSpecificationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass timeExpressionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass durationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass timeObservationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass valuePinEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass durationIntervalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass intervalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass timeConstraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass intervalConstraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass timeIntervalEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass durationObservationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass durationConstraintEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass opaqueActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass callActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sendSignalActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass callOperationActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass callBehaviorActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass informationItemEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass informationFlowEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass variableActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readVariableActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass writeVariableActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clearVariableActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass addVariableValueActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass removeVariableValueActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass raiseExceptionActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass actionInputPinEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readExtentActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass reclassifyObjectActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readIsClassifiedObjectActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass startClassifierBehaviorActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readLinkObjectEndActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass readLinkObjectEndQualifierActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass createLinkObjectActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass acceptEventActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass acceptCallActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass replyActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unmarshallActionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass controlNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass controlFlowEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass initialNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityParameterNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass forkNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass flowFinalNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass finalNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass centralBufferNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass mergeNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass decisionNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass activityFinalNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass joinNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass dataStoreNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass objectFlowEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass sequenceNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass conditionalNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass clauseEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass loopNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass expansionNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass expansionRegionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass componentRealizationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass componentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass nodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass deviceEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass executionEnvironmentEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass communicationPathEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass finalStateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass timeEventEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass protocolTransitionEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass associationClassEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum visibilityKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum callConcurrencyKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum transitionKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum pseudostateKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum aggregationKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum parameterDirectionKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum parameterEffectKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum connectorKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum messageKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum messageSortEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum objectNodeOrderingKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum interactionOperatorKindEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum expansionKindEEnum = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>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.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> 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.
+ * <p>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.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComment() {
+ if (commentEClass == null) {
+ commentEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(0);
+ }
+ return commentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getComment_Body() {
+ return (EAttribute) getComment().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComment_AnnotatedElement() {
+ return (EReference) getComment().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElement() {
+ if (elementEClass == null) {
+ elementEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(1);
+ }
+ return elementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElement_OwnedElement() {
+ return (EReference) getElement().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElement_Owner() {
+ return (EReference) getElement().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElement_OwnedComment() {
+ return (EReference) getElement().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDirectedRelationship() {
+ if (directedRelationshipEClass == null) {
+ directedRelationshipEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(2);
+ }
+ return directedRelationshipEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDirectedRelationship_Source() {
+ return (EReference) getDirectedRelationship().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDirectedRelationship_Target() {
+ return (EReference) getDirectedRelationship().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRelationship() {
+ if (relationshipEClass == null) {
+ relationshipEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(3);
+ }
+ return relationshipEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRelationship_RelatedElement() {
+ return (EReference) getRelationship().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteralSpecification() {
+ if (literalSpecificationEClass == null) {
+ literalSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(5);
+ }
+ return literalSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getValueSpecification() {
+ if (valueSpecificationEClass == null) {
+ valueSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(6);
+ }
+ return valueSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTypedElement() {
+ if (typedElementEClass == null) {
+ typedElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(7);
+ }
+ return typedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTypedElement_Type() {
+ return (EReference) getTypedElement().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamedElement() {
+ if (namedElementEClass == null) {
+ namedElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(8);
+ }
+ return namedElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedElement_Name() {
+ return (EAttribute) getNamedElement().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedElement_Visibility() {
+ return (EAttribute) getNamedElement().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamedElement_QualifiedName() {
+ return (EAttribute) getNamedElement().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamedElement_ClientDependency() {
+ return (EReference) getNamedElement().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamedElement_Namespace() {
+ return (EReference) getNamedElement().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamedElement_NameExpression() {
+ return (EReference) getNamedElement().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDependency() {
+ if (dependencyEClass == null) {
+ dependencyEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(9);
+ }
+ return dependencyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDependency_Supplier() {
+ return (EReference) getDependency().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDependency_Client() {
+ return (EReference) getDependency().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackageableElement() {
+ if (packageableElementEClass == null) {
+ packageableElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(10);
+ }
+ return packageableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParameterableElement() {
+ if (parameterableElementEClass == null) {
+ parameterableElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(11);
+ }
+ return parameterableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameterableElement_TemplateParameter() {
+ return (EReference) getParameterableElement().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameterableElement_OwningTemplateParameter() {
+ return (EReference) getParameterableElement().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemplateParameter() {
+ if (templateParameterEClass == null) {
+ templateParameterEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(12);
+ }
+ return templateParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameter_Signature() {
+ return (EReference) getTemplateParameter().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameter_OwnedParameteredElement() {
+ return (EReference) getTemplateParameter().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameter_Default() {
+ return (EReference) getTemplateParameter().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameter_OwnedDefault() {
+ return (EReference) getTemplateParameter().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameter_ParameteredElement() {
+ return (EReference) getTemplateParameter().getEStructuralFeatures()
+ .get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemplateSignature() {
+ if (templateSignatureEClass == null) {
+ templateSignatureEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(13);
+ }
+ return templateSignatureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateSignature_Parameter() {
+ return (EReference) getTemplateSignature().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateSignature_Template() {
+ return (EReference) getTemplateSignature().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateSignature_OwnedParameter() {
+ return (EReference) getTemplateSignature().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemplateableElement() {
+ if (templateableElementEClass == null) {
+ templateableElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(14);
+ }
+ return templateableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateableElement_TemplateBinding() {
+ return (EReference) getTemplateableElement().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateableElement_OwnedTemplateSignature() {
+ return (EReference) getTemplateableElement().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemplateBinding() {
+ if (templateBindingEClass == null) {
+ templateBindingEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(15);
+ }
+ return templateBindingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateBinding_Signature() {
+ return (EReference) getTemplateBinding().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateBinding_ParameterSubstitution() {
+ return (EReference) getTemplateBinding().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateBinding_BoundElement() {
+ return (EReference) getTemplateBinding().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTemplateParameterSubstitution() {
+ if (templateParameterSubstitutionEClass == null) {
+ templateParameterSubstitutionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(16);
+ }
+ return templateParameterSubstitutionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameterSubstitution_Formal() {
+ return (EReference) getTemplateParameterSubstitution()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameterSubstitution_Actual() {
+ return (EReference) getTemplateParameterSubstitution()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameterSubstitution_OwnedActual() {
+ return (EReference) getTemplateParameterSubstitution()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTemplateParameterSubstitution_TemplateBinding() {
+ return (EReference) getTemplateParameterSubstitution()
+ .getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamespace() {
+ if (namespaceEClass == null) {
+ namespaceEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(17);
+ }
+ return namespaceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamespace_ElementImport() {
+ return (EReference) getNamespace().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamespace_PackageImport() {
+ return (EReference) getNamespace().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamespace_OwnedRule() {
+ return (EReference) getNamespace().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamespace_Member() {
+ return (EReference) getNamespace().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamespace_ImportedMember() {
+ return (EReference) getNamespace().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNamespace_OwnedMember() {
+ return (EReference) getNamespace().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getElementImport() {
+ if (elementImportEClass == null) {
+ elementImportEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(18);
+ }
+ return elementImportEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getElementImport_Visibility() {
+ return (EAttribute) getElementImport().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getElementImport_Alias() {
+ return (EAttribute) getElementImport().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElementImport_ImportedElement() {
+ return (EReference) getElementImport().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getElementImport_ImportingNamespace() {
+ return (EReference) getElementImport().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackageImport() {
+ if (packageImportEClass == null) {
+ packageImportEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(19);
+ }
+ return packageImportEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPackageImport_Visibility() {
+ return (EAttribute) getPackageImport().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackageImport_ImportedPackage() {
+ return (EReference) getPackageImport().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackageImport_ImportingNamespace() {
+ return (EReference) getPackageImport().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackage() {
+ if (packageEClass == null) {
+ packageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(20);
+ }
+ return packageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_PackageMerge() {
+ return (EReference) getPackage().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_PackagedElement() {
+ return (EReference) getPackage().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_OwnedType() {
+ return (EReference) getPackage().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_NestedPackage() {
+ return (EReference) getPackage().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_NestingPackage() {
+ return (EReference) getPackage().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackage_AppliedProfile() {
+ return (EReference) getPackage().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPackageMerge() {
+ if (packageMergeEClass == null) {
+ packageMergeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(21);
+ }
+ return packageMergeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackageMerge_MergedPackage() {
+ return (EReference) getPackageMerge().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPackageMerge_ReceivingPackage() {
+ return (EReference) getPackageMerge().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getType() {
+ if (typeEClass == null) {
+ typeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(22);
+ }
+ return typeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getType_Package() {
+ return (EReference) getType().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProfileApplication() {
+ if (profileApplicationEClass == null) {
+ profileApplicationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(23);
+ }
+ return profileApplicationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProfileApplication_ImportedProfile() {
+ return (EReference) getProfileApplication().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProfileApplication_IsStrict() {
+ return (EAttribute) getProfileApplication().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProfile() {
+ if (profileEClass == null) {
+ profileEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(24);
+ }
+ return profileEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProfile_OwnedStereotype() {
+ return (EReference) getProfile().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProfile_MetaclassReference() {
+ return (EReference) getProfile().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProfile_MetamodelReference() {
+ return (EReference) getProfile().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStereotype() {
+ if (stereotypeEClass == null) {
+ stereotypeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(25);
+ }
+ return stereotypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStereotype_Icon() {
+ return (EReference) getStereotype().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClass_() {
+ if (classEClass == null) {
+ classEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(26);
+ }
+ return classEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClass_OwnedOperation() {
+ return (EReference) getClass_().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClass_NestedClassifier() {
+ return (EReference) getClass_().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClass_SuperClass() {
+ return (EReference) getClass_().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClass_IsActive() {
+ return (EAttribute) getClass_().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClass_OwnedReception() {
+ return (EReference) getClass_().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClass_Extension() {
+ return (EReference) getClass_().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBehavioredClassifier() {
+ if (behavioredClassifierEClass == null) {
+ behavioredClassifierEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(27);
+ }
+ return behavioredClassifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioredClassifier_OwnedBehavior() {
+ return (EReference) getBehavioredClassifier().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioredClassifier_ClassifierBehavior() {
+ return (EReference) getBehavioredClassifier().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioredClassifier_InterfaceRealization() {
+ return (EReference) getBehavioredClassifier().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioredClassifier_OwnedTrigger() {
+ return (EReference) getBehavioredClassifier().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassifier() {
+ if (classifierEClass == null) {
+ classifierEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(28);
+ }
+ return classifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClassifier_IsAbstract() {
+ return (EAttribute) getClassifier().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_Generalization() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_PowertypeExtent() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_Feature() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_InheritedMember() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_RedefinedClassifier() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_General() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_OwnedUseCase() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_UseCase() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_Substitution() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_Attribute() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_Representation() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_CollaborationUse() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifier_OwnedSignature() {
+ return (EReference) getClassifier().getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRedefinableElement() {
+ if (redefinableElementEClass == null) {
+ redefinableElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(29);
+ }
+ return redefinableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRedefinableElement_IsLeaf() {
+ return (EAttribute) getRedefinableElement().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRedefinableElement_RedefinedElement() {
+ return (EReference) getRedefinableElement().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRedefinableElement_RedefinitionContext() {
+ return (EReference) getRedefinableElement().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGeneralization() {
+ if (generalizationEClass == null) {
+ generalizationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(30);
+ }
+ return generalizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGeneralization_IsSubstitutable() {
+ return (EAttribute) getGeneralization().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralization_General() {
+ return (EReference) getGeneralization().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralization_GeneralizationSet() {
+ return (EReference) getGeneralization().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralization_Specific() {
+ return (EReference) getGeneralization().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGeneralizationSet() {
+ if (generalizationSetEClass == null) {
+ generalizationSetEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(31);
+ }
+ return generalizationSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGeneralizationSet_IsCovering() {
+ return (EAttribute) getGeneralizationSet().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getGeneralizationSet_IsDisjoint() {
+ return (EAttribute) getGeneralizationSet().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralizationSet_Powertype() {
+ return (EReference) getGeneralizationSet().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralizationSet_Generalization() {
+ return (EReference) getGeneralizationSet().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFeature() {
+ if (featureEClass == null) {
+ featureEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(32);
+ }
+ return featureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFeature_IsStatic() {
+ return (EAttribute) getFeature().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getFeature_FeaturingClassifier() {
+ return (EReference) getFeature().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUseCase() {
+ if (useCaseEClass == null) {
+ useCaseEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(33);
+ }
+ return useCaseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUseCase_Include() {
+ return (EReference) getUseCase().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUseCase_Extend() {
+ return (EReference) getUseCase().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUseCase_ExtensionPoint() {
+ return (EReference) getUseCase().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUseCase_Subject() {
+ return (EReference) getUseCase().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInclude() {
+ if (includeEClass == null) {
+ includeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(34);
+ }
+ return includeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInclude_Addition() {
+ return (EReference) getInclude().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInclude_IncludingCase() {
+ return (EReference) getInclude().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExtend() {
+ if (extendEClass == null) {
+ extendEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(35);
+ }
+ return extendEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtend_ExtendedCase() {
+ return (EReference) getExtend().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtend_Condition() {
+ return (EReference) getExtend().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtend_ExtensionLocation() {
+ return (EReference) getExtend().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtend_Extension() {
+ return (EReference) getExtend().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConstraint() {
+ if (constraintEClass == null) {
+ constraintEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(36);
+ }
+ return constraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_ConstrainedElement() {
+ return (EReference) getConstraint().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_Specification() {
+ return (EReference) getConstraint().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConstraint_Context() {
+ return (EReference) getConstraint().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExtensionPoint() {
+ if (extensionPointEClass == null) {
+ extensionPointEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(37);
+ }
+ return extensionPointEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtensionPoint_UseCase() {
+ return (EReference) getExtensionPoint().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSubstitution() {
+ if (substitutionEClass == null) {
+ substitutionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(38);
+ }
+ return substitutionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSubstitution_Contract() {
+ return (EReference) getSubstitution().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSubstitution_SubstitutingClassifier() {
+ return (EReference) getSubstitution().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRealization() {
+ if (realizationEClass == null) {
+ realizationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(39);
+ }
+ return realizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAbstraction() {
+ if (abstractionEClass == null) {
+ abstractionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(40);
+ }
+ return abstractionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAbstraction_Mapping() {
+ return (EReference) getAbstraction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOpaqueExpression() {
+ if (opaqueExpressionEClass == null) {
+ opaqueExpressionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(41);
+ }
+ return opaqueExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOpaqueExpression_Body() {
+ return (EAttribute) getOpaqueExpression().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOpaqueExpression_Language() {
+ return (EAttribute) getOpaqueExpression().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOpaqueExpression_Result() {
+ return (EReference) getOpaqueExpression().getEStructuralFeatures().get(
+ 2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOpaqueExpression_Behavior() {
+ return (EReference) getOpaqueExpression().getEStructuralFeatures().get(
+ 3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParameter() {
+ if (parameterEClass == null) {
+ parameterEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(42);
+ }
+ return parameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameter_ParameterSet() {
+ return (EReference) getParameter().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameter_Operation() {
+ return (EReference) getParameter().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_Direction() {
+ return (EAttribute) getParameter().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_Default() {
+ return (EAttribute) getParameter().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameter_DefaultValue() {
+ return (EReference) getParameter().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_IsException() {
+ return (EAttribute) getParameter().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_IsStream() {
+ return (EAttribute) getParameter().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getParameter_Effect() {
+ return (EAttribute) getParameter().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMultiplicityElement() {
+ if (multiplicityElementEClass == null) {
+ multiplicityElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(43);
+ }
+ return multiplicityElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiplicityElement_IsOrdered() {
+ return (EAttribute) getMultiplicityElement().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiplicityElement_IsUnique() {
+ return (EAttribute) getMultiplicityElement().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiplicityElement_Upper() {
+ return (EAttribute) getMultiplicityElement().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMultiplicityElement_Lower() {
+ return (EAttribute) getMultiplicityElement().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiplicityElement_UpperValue() {
+ return (EReference) getMultiplicityElement().getEStructuralFeatures()
+ .get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMultiplicityElement_LowerValue() {
+ return (EReference) getMultiplicityElement().getEStructuralFeatures()
+ .get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConnectableElement() {
+ if (connectableElementEClass == null) {
+ connectableElementEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(44);
+ }
+ return connectableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectableElement_End() {
+ return (EReference) getConnectableElement().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConnectorEnd() {
+ if (connectorEndEClass == null) {
+ connectorEndEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(45);
+ }
+ return connectorEndEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectorEnd_DefiningEnd() {
+ return (EReference) getConnectorEnd().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectorEnd_PartWithPort() {
+ return (EReference) getConnectorEnd().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectorEnd_Role() {
+ return (EReference) getConnectorEnd().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProperty() {
+ if (propertyEClass == null) {
+ propertyEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(46);
+ }
+ return propertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_Datatype() {
+ return (EReference) getProperty().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_IsDerived() {
+ return (EAttribute) getProperty().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_IsDerivedUnion() {
+ return (EAttribute) getProperty().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Default() {
+ return (EAttribute) getProperty().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Aggregation() {
+ return (EAttribute) getProperty().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_IsComposite() {
+ return (EAttribute) getProperty().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_Class_() {
+ return (EReference) getProperty().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_RedefinedProperty() {
+ return (EReference) getProperty().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_OwningAssociation() {
+ return (EReference) getProperty().getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_Association() {
+ return (EReference) getProperty().getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_DefaultValue() {
+ return (EReference) getProperty().getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_Opposite() {
+ return (EReference) getProperty().getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_SubsettedProperty() {
+ return (EReference) getProperty().getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_Qualifier() {
+ return (EReference) getProperty().getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_AssociationEnd() {
+ return (EReference) getProperty().getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeploymentTarget() {
+ if (deploymentTargetEClass == null) {
+ deploymentTargetEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(47);
+ }
+ return deploymentTargetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeploymentTarget_Deployment() {
+ return (EReference) getDeploymentTarget().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeploymentTarget_DeployedElement() {
+ return (EReference) getDeploymentTarget().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeployment() {
+ if (deploymentEClass == null) {
+ deploymentEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(48);
+ }
+ return deploymentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeployment_DeployedArtifact() {
+ return (EReference) getDeployment().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeployment_Configuration() {
+ return (EReference) getDeployment().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeployment_Location() {
+ return (EReference) getDeployment().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeployedArtifact() {
+ if (deployedArtifactEClass == null) {
+ deployedArtifactEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(49);
+ }
+ return deployedArtifactEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDeploymentSpecification() {
+ if (deploymentSpecificationEClass == null) {
+ deploymentSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(50);
+ }
+ return deploymentSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDeploymentSpecification_DeploymentLocation() {
+ return (EAttribute) getDeploymentSpecification()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDeploymentSpecification_ExecutionLocation() {
+ return (EAttribute) getDeploymentSpecification()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDeploymentSpecification_Deployment() {
+ return (EReference) getDeploymentSpecification()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArtifact() {
+ if (artifactEClass == null) {
+ artifactEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(51);
+ }
+ return artifactEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getArtifact_FileName() {
+ return (EAttribute) getArtifact().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArtifact_NestedArtifact() {
+ return (EReference) getArtifact().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArtifact_Manifestation() {
+ return (EReference) getArtifact().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArtifact_OwnedOperation() {
+ return (EReference) getArtifact().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getArtifact_OwnedAttribute() {
+ return (EReference) getArtifact().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getManifestation() {
+ if (manifestationEClass == null) {
+ manifestationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(52);
+ }
+ return manifestationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getManifestation_UtilizedElement() {
+ return (EReference) getManifestation().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOperation() {
+ if (operationEClass == null) {
+ operationEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(53);
+ }
+ return operationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOperation_IsQuery() {
+ return (EAttribute) getOperation().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOperation_IsOrdered() {
+ return (EAttribute) getOperation().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOperation_IsUnique() {
+ return (EAttribute) getOperation().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOperation_Lower() {
+ return (EAttribute) getOperation().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOperation_Upper() {
+ return (EAttribute) getOperation().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_Class_() {
+ return (EReference) getOperation().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_Precondition() {
+ return (EReference) getOperation().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_Postcondition() {
+ return (EReference) getOperation().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_RedefinedOperation() {
+ return (EReference) getOperation().getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_Datatype() {
+ return (EReference) getOperation().getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_BodyCondition() {
+ return (EReference) getOperation().getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_Type() {
+ return (EReference) getOperation().getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOperation_Interface() {
+ return (EReference) getOperation().getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBehavioralFeature() {
+ if (behavioralFeatureEClass == null) {
+ behavioralFeatureEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(54);
+ }
+ return behavioralFeatureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioralFeature_OwnedParameter() {
+ return (EReference) getBehavioralFeature().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBehavioralFeature_IsAbstract() {
+ return (EAttribute) getBehavioralFeature().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioralFeature_Method() {
+ return (EReference) getBehavioralFeature().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBehavioralFeature_Concurrency() {
+ return (EAttribute) getBehavioralFeature().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioralFeature_RaisedException() {
+ return (EReference) getBehavioralFeature().getEStructuralFeatures()
+ .get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavioralFeature_OwnedParameterSet() {
+ return (EReference) getBehavioralFeature().getEStructuralFeatures()
+ .get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBehavior() {
+ if (behaviorEClass == null) {
+ behaviorEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(55);
+ }
+ return behaviorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBehavior_IsReentrant() {
+ return (EAttribute) getBehavior().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavior_RedefinedBehavior() {
+ return (EReference) getBehavior().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavior_OwnedParameter() {
+ return (EReference) getBehavior().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavior_Context() {
+ return (EReference) getBehavior().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavior_OwnedParameterSet() {
+ return (EReference) getBehavior().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehavior_Specification() {
+ return (EReference) getBehavior().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getParameterSet() {
+ if (parameterSetEClass == null) {
+ parameterSetEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(56);
+ }
+ return parameterSetEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameterSet_Parameter() {
+ return (EReference) getParameterSet().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getParameterSet_Condition() {
+ return (EReference) getParameterSet().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataType() {
+ if (dataTypeEClass == null) {
+ dataTypeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(58);
+ }
+ return dataTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataType_OwnedAttribute() {
+ return (EReference) getDataType().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDataType_OwnedOperation() {
+ return (EReference) getDataType().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInterface() {
+ if (interfaceEClass == null) {
+ interfaceEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(59);
+ }
+ return interfaceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterface_OwnedAttribute() {
+ return (EReference) getInterface().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterface_NestedClassifier() {
+ return (EReference) getInterface().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterface_RedefinedInterface() {
+ return (EReference) getInterface().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterface_OwnedReception() {
+ return (EReference) getInterface().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterface_Protocol() {
+ return (EReference) getInterface().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterface_OwnedOperation() {
+ return (EReference) getInterface().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReception() {
+ if (receptionEClass == null) {
+ receptionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(60);
+ }
+ return receptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReception_Signal() {
+ return (EReference) getReception().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSignal() {
+ if (signalEClass == null) {
+ signalEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(61);
+ }
+ return signalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSignal_OwnedAttribute() {
+ return (EReference) getSignal().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProtocolStateMachine() {
+ if (protocolStateMachineEClass == null) {
+ protocolStateMachineEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(62);
+ }
+ return protocolStateMachineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProtocolStateMachine_Conformance() {
+ return (EReference) getProtocolStateMachine().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStateMachine() {
+ if (stateMachineEClass == null) {
+ stateMachineEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(63);
+ }
+ return stateMachineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStateMachine_Region() {
+ return (EReference) getStateMachine().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStateMachine_ConnectionPoint() {
+ return (EReference) getStateMachine().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStateMachine_ExtendedStateMachine() {
+ return (EReference) getStateMachine().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRegion() {
+ if (regionEClass == null) {
+ regionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(64);
+ }
+ return regionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRegion_Subvertex() {
+ return (EReference) getRegion().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRegion_Transition() {
+ return (EReference) getRegion().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRegion_State() {
+ return (EReference) getRegion().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRegion_ExtendedRegion() {
+ return (EReference) getRegion().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRegion_StateMachine() {
+ return (EReference) getRegion().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVertex() {
+ if (vertexEClass == null) {
+ vertexEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(65);
+ }
+ return vertexEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVertex_Outgoing() {
+ return (EReference) getVertex().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVertex_Incoming() {
+ return (EReference) getVertex().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVertex_Container() {
+ return (EReference) getVertex().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTransition() {
+ if (transitionEClass == null) {
+ transitionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(66);
+ }
+ return transitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTransition_Kind() {
+ return (EAttribute) getTransition().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Container() {
+ return (EReference) getTransition().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Target() {
+ return (EReference) getTransition().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_RedefinedTransition() {
+ return (EReference) getTransition().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Guard() {
+ return (EReference) getTransition().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Effect() {
+ return (EReference) getTransition().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Trigger() {
+ return (EReference) getTransition().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTransition_Source() {
+ return (EReference) getTransition().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTrigger() {
+ if (triggerEClass == null) {
+ triggerEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(68);
+ }
+ return triggerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrigger_Event() {
+ return (EReference) getTrigger().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTrigger_Port() {
+ return (EReference) getTrigger().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEvent() {
+ if (eventEClass == null) {
+ eventEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(69);
+ }
+ return eventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPort() {
+ if (portEClass == null) {
+ portEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(70);
+ }
+ return portEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPort_IsBehavior() {
+ return (EAttribute) getPort().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPort_IsService() {
+ return (EAttribute) getPort().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPort_Required() {
+ return (EReference) getPort().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPort_RedefinedPort() {
+ return (EReference) getPort().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPort_Provided() {
+ return (EReference) getPort().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPort_Protocol() {
+ return (EReference) getPort().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getState() {
+ if (stateEClass == null) {
+ stateEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(71);
+ }
+ return stateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_IsComposite() {
+ return (EAttribute) getState().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_IsOrthogonal() {
+ return (EAttribute) getState().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_IsSimple() {
+ return (EAttribute) getState().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getState_IsSubmachineState() {
+ return (EAttribute) getState().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Submachine() {
+ return (EReference) getState().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Connection() {
+ return (EReference) getState().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_ConnectionPoint() {
+ return (EReference) getState().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_RedefinedState() {
+ return (EReference) getState().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_StateInvariant() {
+ return (EReference) getState().getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Entry() {
+ return (EReference) getState().getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Exit() {
+ return (EReference) getState().getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_DoActivity() {
+ return (EReference) getState().getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_DeferrableTrigger() {
+ return (EReference) getState().getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getState_Region() {
+ return (EReference) getState().getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConnectionPointReference() {
+ if (connectionPointReferenceEClass == null) {
+ connectionPointReferenceEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(72);
+ }
+ return connectionPointReferenceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectionPointReference_Entry() {
+ return (EReference) getConnectionPointReference()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectionPointReference_Exit() {
+ return (EReference) getConnectionPointReference()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnectionPointReference_State() {
+ return (EReference) getConnectionPointReference()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPseudostate() {
+ if (pseudostateEClass == null) {
+ pseudostateEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(73);
+ }
+ return pseudostateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPseudostate_Kind() {
+ return (EAttribute) getPseudostate().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPseudostate_StateMachine() {
+ return (EReference) getPseudostate().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPseudostate_State() {
+ return (EReference) getPseudostate().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProtocolConformance() {
+ if (protocolConformanceEClass == null) {
+ protocolConformanceEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(75);
+ }
+ return protocolConformanceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProtocolConformance_GeneralMachine() {
+ return (EReference) getProtocolConformance().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProtocolConformance_SpecificMachine() {
+ return (EReference) getProtocolConformance().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOperationTemplateParameter() {
+ if (operationTemplateParameterEClass == null) {
+ operationTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(76);
+ }
+ return operationTemplateParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStructuralFeature() {
+ if (structuralFeatureEClass == null) {
+ structuralFeatureEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(77);
+ }
+ return structuralFeatureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStructuralFeature_IsReadOnly() {
+ return (EAttribute) getStructuralFeature().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAssociation() {
+ if (associationEClass == null) {
+ associationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(79);
+ }
+ return associationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAssociation_IsDerived() {
+ return (EAttribute) getAssociation().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAssociation_EndType() {
+ return (EReference) getAssociation().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAssociation_MemberEnd() {
+ return (EReference) getAssociation().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAssociation_NavigableOwnedEnd() {
+ return (EReference) getAssociation().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAssociation_OwnedEnd() {
+ return (EReference) getAssociation().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConnectableElementTemplateParameter() {
+ if (connectableElementTemplateParameterEClass == null) {
+ connectableElementTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(80);
+ }
+ return connectableElementTemplateParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCollaborationUse() {
+ if (collaborationUseEClass == null) {
+ collaborationUseEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(83);
+ }
+ return collaborationUseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCollaborationUse_Type() {
+ return (EReference) getCollaborationUse().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCollaborationUse_RoleBinding() {
+ return (EReference) getCollaborationUse().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCollaboration() {
+ if (collaborationEClass == null) {
+ collaborationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(84);
+ }
+ return collaborationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCollaboration_CollaborationRole() {
+ return (EReference) getCollaboration().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStructuredClassifier() {
+ if (structuredClassifierEClass == null) {
+ structuredClassifierEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(85);
+ }
+ return structuredClassifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredClassifier_OwnedAttribute() {
+ return (EReference) getStructuredClassifier().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredClassifier_Part() {
+ return (EReference) getStructuredClassifier().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredClassifier_Role() {
+ return (EReference) getStructuredClassifier().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredClassifier_OwnedConnector() {
+ return (EReference) getStructuredClassifier().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConnector() {
+ if (connectorEClass == null) {
+ connectorEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(86);
+ }
+ return connectorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnector_Type() {
+ return (EReference) getConnector().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnector_RedefinedConnector() {
+ return (EReference) getConnector().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnector_End() {
+ return (EReference) getConnector().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConnector_Kind() {
+ return (EAttribute) getConnector().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConnector_Contract() {
+ return (EReference) getConnector().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRedefinableTemplateSignature() {
+ if (redefinableTemplateSignatureEClass == null) {
+ redefinableTemplateSignatureEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(88);
+ }
+ return redefinableTemplateSignatureEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRedefinableTemplateSignature_ExtendedSignature() {
+ return (EReference) getRedefinableTemplateSignature()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRedefinableTemplateSignature_InheritedParameter() {
+ return (EReference) getRedefinableTemplateSignature()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRedefinableTemplateSignature_Classifier() {
+ return (EReference) getRedefinableTemplateSignature()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClassifierTemplateParameter() {
+ if (classifierTemplateParameterEClass == null) {
+ classifierTemplateParameterEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(89);
+ }
+ return classifierTemplateParameterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClassifierTemplateParameter_AllowSubstitutable() {
+ return (EAttribute) getClassifierTemplateParameter()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifierTemplateParameter_DefaultClassifier() {
+ return (EReference) getClassifierTemplateParameter()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClassifierTemplateParameter_ConstrainingClassifier() {
+ return (EReference) getClassifierTemplateParameter()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInterfaceRealization() {
+ if (interfaceRealizationEClass == null) {
+ interfaceRealizationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(90);
+ }
+ return interfaceRealizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterfaceRealization_Contract() {
+ return (EReference) getInterfaceRealization().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterfaceRealization_ImplementingClassifier() {
+ return (EReference) getInterfaceRealization().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEncapsulatedClassifier() {
+ if (encapsulatedClassifierEClass == null) {
+ encapsulatedClassifierEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(91);
+ }
+ return encapsulatedClassifierEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEncapsulatedClassifier_OwnedPort() {
+ return (EReference) getEncapsulatedClassifier()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExtension() {
+ if (extensionEClass == null) {
+ extensionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(92);
+ }
+ return extensionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExtension_IsRequired() {
+ return (EAttribute) getExtension().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExtension_Metaclass() {
+ return (EReference) getExtension().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExtensionEnd() {
+ if (extensionEndEClass == null) {
+ extensionEndEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(93);
+ }
+ return extensionEndEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getImage() {
+ if (imageEClass == null) {
+ imageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(94);
+ }
+ return imageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStringExpression() {
+ if (stringExpressionEClass == null) {
+ stringExpressionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(95);
+ }
+ return stringExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStringExpression_SubExpression() {
+ return (EReference) getStringExpression().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStringExpression_OwningExpression() {
+ return (EReference) getStringExpression().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExpression() {
+ if (expressionEClass == null) {
+ expressionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(96);
+ }
+ return expressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExpression_Symbol() {
+ return (EAttribute) getExpression().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpression_Operand() {
+ return (EReference) getExpression().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteralInteger() {
+ if (literalIntegerEClass == null) {
+ literalIntegerEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(97);
+ }
+ return literalIntegerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLiteralInteger_Value() {
+ return (EAttribute) getLiteralInteger().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteralString() {
+ if (literalStringEClass == null) {
+ literalStringEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(98);
+ }
+ return literalStringEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLiteralString_Value() {
+ return (EAttribute) getLiteralString().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteralBoolean() {
+ if (literalBooleanEClass == null) {
+ literalBooleanEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(99);
+ }
+ return literalBooleanEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLiteralBoolean_Value() {
+ return (EAttribute) getLiteralBoolean().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteralNull() {
+ if (literalNullEClass == null) {
+ literalNullEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(100);
+ }
+ return literalNullEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSlot() {
+ if (slotEClass == null) {
+ slotEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(101);
+ }
+ return slotEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSlot_OwningInstance() {
+ return (EReference) getSlot().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSlot_DefiningFeature() {
+ return (EReference) getSlot().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSlot_Value() {
+ return (EReference) getSlot().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstanceSpecification() {
+ if (instanceSpecificationEClass == null) {
+ instanceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(102);
+ }
+ return instanceSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceSpecification_Classifier() {
+ return (EReference) getInstanceSpecification().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceSpecification_Specification() {
+ return (EReference) getInstanceSpecification().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceSpecification_Slot() {
+ return (EReference) getInstanceSpecification().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEnumeration() {
+ if (enumerationEClass == null) {
+ enumerationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(103);
+ }
+ return enumerationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEnumeration_OwnedLiteral() {
+ return (EReference) getEnumeration().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEnumerationLiteral() {
+ if (enumerationLiteralEClass == null) {
+ enumerationLiteralEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(104);
+ }
+ return enumerationLiteralEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getEnumerationLiteral_Enumeration() {
+ return (EReference) getEnumerationLiteral().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPrimitiveType() {
+ if (primitiveTypeEClass == null) {
+ primitiveTypeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(105);
+ }
+ return primitiveTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInstanceValue() {
+ if (instanceValueEClass == null) {
+ instanceValueEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(106);
+ }
+ return instanceValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInstanceValue_Instance() {
+ return (EReference) getInstanceValue().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLiteralUnlimitedNatural() {
+ if (literalUnlimitedNaturalEClass == null) {
+ literalUnlimitedNaturalEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(107);
+ }
+ return literalUnlimitedNaturalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLiteralUnlimitedNatural_Value() {
+ return (EAttribute) getLiteralUnlimitedNatural()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOpaqueBehavior() {
+ if (opaqueBehaviorEClass == null) {
+ opaqueBehaviorEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(108);
+ }
+ return opaqueBehaviorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOpaqueBehavior_Body() {
+ return (EAttribute) getOpaqueBehavior().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOpaqueBehavior_Language() {
+ return (EAttribute) getOpaqueBehavior().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFunctionBehavior() {
+ if (functionBehaviorEClass == null) {
+ functionBehaviorEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(109);
+ }
+ return functionBehaviorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActor() {
+ if (actorEClass == null) {
+ actorEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(110);
+ }
+ return actorEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUsage() {
+ if (usageEClass == null) {
+ usageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(111);
+ }
+ return usageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMessage() {
+ if (messageEClass == null) {
+ messageEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(112);
+ }
+ return messageEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMessage_MessageKind() {
+ return (EAttribute) getMessage().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getMessage_MessageSort() {
+ return (EAttribute) getMessage().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessage_ReceiveEvent() {
+ return (EReference) getMessage().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessage_SendEvent() {
+ return (EReference) getMessage().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessage_Connector() {
+ return (EReference) getMessage().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessage_Interaction() {
+ return (EReference) getMessage().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessage_Argument() {
+ return (EReference) getMessage().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessage_Signature() {
+ return (EReference) getMessage().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMessageEnd() {
+ if (messageEndEClass == null) {
+ messageEndEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(115);
+ }
+ return messageEndEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getMessageEnd_Message() {
+ return (EReference) getMessageEnd().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInteraction() {
+ if (interactionEClass == null) {
+ interactionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(116);
+ }
+ return interactionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteraction_Lifeline() {
+ return (EReference) getInteraction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteraction_Fragment() {
+ return (EReference) getInteraction().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteraction_Action() {
+ return (EReference) getInteraction().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteraction_FormalGate() {
+ return (EReference) getInteraction().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteraction_Message() {
+ return (EReference) getInteraction().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInteractionFragment() {
+ if (interactionFragmentEClass == null) {
+ interactionFragmentEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(117);
+ }
+ return interactionFragmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionFragment_Covered() {
+ return (EReference) getInteractionFragment().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionFragment_GeneralOrdering() {
+ return (EReference) getInteractionFragment().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionFragment_EnclosingInteraction() {
+ return (EReference) getInteractionFragment().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionFragment_EnclosingOperand() {
+ return (EReference) getInteractionFragment().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLifeline() {
+ if (lifelineEClass == null) {
+ lifelineEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(118);
+ }
+ return lifelineEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLifeline_Represents() {
+ return (EReference) getLifeline().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLifeline_Interaction() {
+ return (EReference) getLifeline().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLifeline_Selector() {
+ return (EReference) getLifeline().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLifeline_DecomposedAs() {
+ return (EReference) getLifeline().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLifeline_CoveredBy() {
+ return (EReference) getLifeline().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPartDecomposition() {
+ if (partDecompositionEClass == null) {
+ partDecompositionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(119);
+ }
+ return partDecompositionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInteractionUse() {
+ if (interactionUseEClass == null) {
+ interactionUseEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(120);
+ }
+ return interactionUseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionUse_RefersTo() {
+ return (EReference) getInteractionUse().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionUse_ActualGate() {
+ return (EReference) getInteractionUse().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionUse_Argument() {
+ return (EReference) getInteractionUse().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGate() {
+ if (gateEClass == null) {
+ gateEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(121);
+ }
+ return gateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAction() {
+ if (actionEClass == null) {
+ actionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(122);
+ }
+ return actionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAction_Output() {
+ return (EReference) getAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAction_Input() {
+ return (EReference) getAction().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAction_Context() {
+ return (EReference) getAction().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAction_LocalPrecondition() {
+ return (EReference) getAction().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAction_LocalPostcondition() {
+ return (EReference) getAction().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExecutableNode() {
+ if (executableNodeEClass == null) {
+ executableNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(123);
+ }
+ return executableNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExecutableNode_Handler() {
+ return (EReference) getExecutableNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivityNode() {
+ if (activityNodeEClass == null) {
+ activityNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(124);
+ }
+ return activityNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_Outgoing() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_InGroup() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_InPartition() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_InStructuredNode() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_Activity() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_Incoming() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_InInterruptibleRegion() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityNode_RedefinedNode() {
+ return (EReference) getActivityNode().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivityEdge() {
+ if (activityEdgeEClass == null) {
+ activityEdgeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(125);
+ }
+ return activityEdgeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_Activity() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_InGroup() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_InPartition() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_InStructuredNode() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_Target() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_RedefinedEdge() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_Guard() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_Weight() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_Interrupts() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityEdge_Source() {
+ return (EReference) getActivityEdge().getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivity() {
+ if (activityEClass == null) {
+ activityEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(126);
+ }
+ return activityEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getActivity_IsReadOnly() {
+ return (EAttribute) getActivity().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivity_Partition() {
+ return (EReference) getActivity().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivity_Group() {
+ return (EReference) getActivity().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getActivity_IsSingleExecution() {
+ return (EAttribute) getActivity().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivity_StructuredNode() {
+ return (EReference) getActivity().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivity_Variable() {
+ return (EReference) getActivity().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivity_Node() {
+ return (EReference) getActivity().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivity_Edge() {
+ return (EReference) getActivity().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivityPartition() {
+ if (activityPartitionEClass == null) {
+ activityPartitionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(127);
+ }
+ return activityPartitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getActivityPartition_IsDimension() {
+ return (EAttribute) getActivityPartition().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getActivityPartition_IsExternal() {
+ return (EAttribute) getActivityPartition().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityPartition_Edge() {
+ return (EReference) getActivityPartition().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityPartition_Node() {
+ return (EReference) getActivityPartition().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityPartition_Subpartition() {
+ return (EReference) getActivityPartition().getEStructuralFeatures()
+ .get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityPartition_SuperPartition() {
+ return (EReference) getActivityPartition().getEStructuralFeatures()
+ .get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityPartition_Represents() {
+ return (EReference) getActivityPartition().getEStructuralFeatures()
+ .get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivityGroup() {
+ if (activityGroupEClass == null) {
+ activityGroupEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(128);
+ }
+ return activityGroupEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityGroup_Subgroup() {
+ return (EReference) getActivityGroup().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityGroup_SuperGroup() {
+ return (EReference) getActivityGroup().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityGroup_ContainedNode() {
+ return (EReference) getActivityGroup().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityGroup_InActivity() {
+ return (EReference) getActivityGroup().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityGroup_ContainedEdge() {
+ return (EReference) getActivityGroup().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStructuredActivityNode() {
+ if (structuredActivityNodeEClass == null) {
+ structuredActivityNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(129);
+ }
+ return structuredActivityNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredActivityNode_Variable() {
+ return (EReference) getStructuredActivityNode()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredActivityNode_Node() {
+ return (EReference) getStructuredActivityNode()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStructuredActivityNode_MustIsolate() {
+ return (EAttribute) getStructuredActivityNode()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuredActivityNode_Edge() {
+ return (EReference) getStructuredActivityNode()
+ .getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVariable() {
+ if (variableEClass == null) {
+ variableEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(130);
+ }
+ return variableEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVariable_ActivityScope() {
+ return (EReference) getVariable().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVariable_Scope() {
+ return (EReference) getVariable().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInterruptibleActivityRegion() {
+ if (interruptibleActivityRegionEClass == null) {
+ interruptibleActivityRegionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(131);
+ }
+ return interruptibleActivityRegionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterruptibleActivityRegion_Node() {
+ return (EReference) getInterruptibleActivityRegion()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterruptibleActivityRegion_InterruptingEdge() {
+ return (EReference) getInterruptibleActivityRegion()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExceptionHandler() {
+ if (exceptionHandlerEClass == null) {
+ exceptionHandlerEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(132);
+ }
+ return exceptionHandlerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExceptionHandler_HandlerBody() {
+ return (EReference) getExceptionHandler().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExceptionHandler_ExceptionInput() {
+ return (EReference) getExceptionHandler().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExceptionHandler_ExceptionType() {
+ return (EReference) getExceptionHandler().getEStructuralFeatures().get(
+ 2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExceptionHandler_ProtectedNode() {
+ return (EReference) getExceptionHandler().getEStructuralFeatures().get(
+ 3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getObjectNode() {
+ if (objectNodeEClass == null) {
+ objectNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(133);
+ }
+ return objectNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getObjectNode_Ordering() {
+ return (EAttribute) getObjectNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getObjectNode_IsControlType() {
+ return (EAttribute) getObjectNode().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getObjectNode_UpperBound() {
+ return (EReference) getObjectNode().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getObjectNode_InState() {
+ return (EReference) getObjectNode().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getObjectNode_Selection() {
+ return (EReference) getObjectNode().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOutputPin() {
+ if (outputPinEClass == null) {
+ outputPinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(135);
+ }
+ return outputPinEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPin() {
+ if (pinEClass == null) {
+ pinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(136);
+ }
+ return pinEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPin_IsControl() {
+ return (EAttribute) getPin().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInputPin() {
+ if (inputPinEClass == null) {
+ inputPinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(137);
+ }
+ return inputPinEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getGeneralOrdering() {
+ if (generalOrderingEClass == null) {
+ generalOrderingEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(138);
+ }
+ return generalOrderingEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralOrdering_Before() {
+ return (EReference) getGeneralOrdering().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getGeneralOrdering_After() {
+ return (EReference) getGeneralOrdering().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOccurrenceSpecification() {
+ if (occurrenceSpecificationEClass == null) {
+ occurrenceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(139);
+ }
+ return occurrenceSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOccurrenceSpecification_ToBefore() {
+ return (EReference) getOccurrenceSpecification()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOccurrenceSpecification_Event() {
+ return (EReference) getOccurrenceSpecification()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOccurrenceSpecification_ToAfter() {
+ return (EReference) getOccurrenceSpecification()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInteractionOperand() {
+ if (interactionOperandEClass == null) {
+ interactionOperandEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(140);
+ }
+ return interactionOperandEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionOperand_Guard() {
+ return (EReference) getInteractionOperand().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionOperand_Fragment() {
+ return (EReference) getInteractionOperand().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInteractionConstraint() {
+ if (interactionConstraintEClass == null) {
+ interactionConstraintEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(141);
+ }
+ return interactionConstraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionConstraint_Minint() {
+ return (EReference) getInteractionConstraint().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInteractionConstraint_Maxint() {
+ return (EReference) getInteractionConstraint().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExecutionSpecification() {
+ if (executionSpecificationEClass == null) {
+ executionSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(142);
+ }
+ return executionSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExecutionSpecification_Start() {
+ return (EReference) getExecutionSpecification()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExecutionSpecification_Finish() {
+ return (EReference) getExecutionSpecification()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExecutionOccurrenceSpecification() {
+ if (executionOccurrenceSpecificationEClass == null) {
+ executionOccurrenceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(143);
+ }
+ return executionOccurrenceSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExecutionOccurrenceSpecification_Execution() {
+ return (EReference) getExecutionOccurrenceSpecification()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExecutionEvent() {
+ if (executionEventEClass == null) {
+ executionEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(144);
+ }
+ return executionEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStateInvariant() {
+ if (stateInvariantEClass == null) {
+ stateInvariantEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(145);
+ }
+ return stateInvariantEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStateInvariant_Invariant() {
+ return (EReference) getStateInvariant().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActionExecutionSpecification() {
+ if (actionExecutionSpecificationEClass == null) {
+ actionExecutionSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(146);
+ }
+ return actionExecutionSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActionExecutionSpecification_Action() {
+ return (EReference) getActionExecutionSpecification()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBehaviorExecutionSpecification() {
+ if (behaviorExecutionSpecificationEClass == null) {
+ behaviorExecutionSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(147);
+ }
+ return behaviorExecutionSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBehaviorExecutionSpecification_Behavior() {
+ return (EReference) getBehaviorExecutionSpecification()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCreationEvent() {
+ if (creationEventEClass == null) {
+ creationEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(148);
+ }
+ return creationEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDestructionEvent() {
+ if (destructionEventEClass == null) {
+ destructionEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(149);
+ }
+ return destructionEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSendOperationEvent() {
+ if (sendOperationEventEClass == null) {
+ sendOperationEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(150);
+ }
+ return sendOperationEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSendOperationEvent_Operation() {
+ return (EReference) getSendOperationEvent().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMessageEvent() {
+ if (messageEventEClass == null) {
+ messageEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(151);
+ }
+ return messageEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSendSignalEvent() {
+ if (sendSignalEventEClass == null) {
+ sendSignalEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(152);
+ }
+ return sendSignalEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSendSignalEvent_Signal() {
+ return (EReference) getSendSignalEvent().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMessageOccurrenceSpecification() {
+ if (messageOccurrenceSpecificationEClass == null) {
+ messageOccurrenceSpecificationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(153);
+ }
+ return messageOccurrenceSpecificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCombinedFragment() {
+ if (combinedFragmentEClass == null) {
+ combinedFragmentEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(155);
+ }
+ return combinedFragmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCombinedFragment_InteractionOperator() {
+ return (EAttribute) getCombinedFragment().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCombinedFragment_Operand() {
+ return (EReference) getCombinedFragment().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCombinedFragment_CfragmentGate() {
+ return (EReference) getCombinedFragment().getEStructuralFeatures().get(
+ 2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getContinuation() {
+ if (continuationEClass == null) {
+ continuationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(156);
+ }
+ return continuationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getContinuation_Setting() {
+ return (EAttribute) getContinuation().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConsiderIgnoreFragment() {
+ if (considerIgnoreFragmentEClass == null) {
+ considerIgnoreFragmentEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(157);
+ }
+ return considerIgnoreFragmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConsiderIgnoreFragment_Message() {
+ return (EReference) getConsiderIgnoreFragment()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCallEvent() {
+ if (callEventEClass == null) {
+ callEventEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(158);
+ }
+ return callEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCallEvent_Operation() {
+ return (EReference) getCallEvent().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getChangeEvent() {
+ if (changeEventEClass == null) {
+ changeEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(159);
+ }
+ return changeEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getChangeEvent_ChangeExpression() {
+ return (EReference) getChangeEvent().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSignalEvent() {
+ if (signalEventEClass == null) {
+ signalEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(160);
+ }
+ return signalEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSignalEvent_Signal() {
+ return (EReference) getSignalEvent().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAnyReceiveEvent() {
+ if (anyReceiveEventEClass == null) {
+ anyReceiveEventEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(161);
+ }
+ return anyReceiveEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCreateObjectAction() {
+ if (createObjectActionEClass == null) {
+ createObjectActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(162);
+ }
+ return createObjectActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCreateObjectAction_Classifier() {
+ return (EReference) getCreateObjectAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCreateObjectAction_Result() {
+ return (EReference) getCreateObjectAction().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDestroyObjectAction() {
+ if (destroyObjectActionEClass == null) {
+ destroyObjectActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(163);
+ }
+ return destroyObjectActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDestroyObjectAction_IsDestroyLinks() {
+ return (EAttribute) getDestroyObjectAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDestroyObjectAction_IsDestroyOwnedObjects() {
+ return (EAttribute) getDestroyObjectAction().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDestroyObjectAction_Target() {
+ return (EReference) getDestroyObjectAction().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTestIdentityAction() {
+ if (testIdentityActionEClass == null) {
+ testIdentityActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(164);
+ }
+ return testIdentityActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestIdentityAction_First() {
+ return (EReference) getTestIdentityAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestIdentityAction_Second() {
+ return (EReference) getTestIdentityAction().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTestIdentityAction_Result() {
+ return (EReference) getTestIdentityAction().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadSelfAction() {
+ if (readSelfActionEClass == null) {
+ readSelfActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(165);
+ }
+ return readSelfActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadSelfAction_Result() {
+ return (EReference) getReadSelfAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStructuralFeatureAction() {
+ if (structuralFeatureActionEClass == null) {
+ structuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(166);
+ }
+ return structuralFeatureActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuralFeatureAction_StructuralFeature() {
+ return (EReference) getStructuralFeatureAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStructuralFeatureAction_Object() {
+ return (EReference) getStructuralFeatureAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadStructuralFeatureAction() {
+ if (readStructuralFeatureActionEClass == null) {
+ readStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(167);
+ }
+ return readStructuralFeatureActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadStructuralFeatureAction_Result() {
+ return (EReference) getReadStructuralFeatureAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWriteStructuralFeatureAction() {
+ if (writeStructuralFeatureActionEClass == null) {
+ writeStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(168);
+ }
+ return writeStructuralFeatureActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWriteStructuralFeatureAction_Value() {
+ return (EReference) getWriteStructuralFeatureAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClearStructuralFeatureAction() {
+ if (clearStructuralFeatureActionEClass == null) {
+ clearStructuralFeatureActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(169);
+ }
+ return clearStructuralFeatureActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRemoveStructuralFeatureValueAction() {
+ if (removeStructuralFeatureValueActionEClass == null) {
+ removeStructuralFeatureValueActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(170);
+ }
+ return removeStructuralFeatureValueActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRemoveStructuralFeatureValueAction_IsRemoveDuplicates() {
+ return (EAttribute) getRemoveStructuralFeatureValueAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRemoveStructuralFeatureValueAction_RemoveAt() {
+ return (EReference) getRemoveStructuralFeatureValueAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddStructuralFeatureValueAction() {
+ if (addStructuralFeatureValueActionEClass == null) {
+ addStructuralFeatureValueActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(171);
+ }
+ return addStructuralFeatureValueActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddStructuralFeatureValueAction_IsReplaceAll() {
+ return (EAttribute) getAddStructuralFeatureValueAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAddStructuralFeatureValueAction_InsertAt() {
+ return (EReference) getAddStructuralFeatureValueAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkAction() {
+ if (linkActionEClass == null) {
+ linkActionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(172);
+ }
+ return linkActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkAction_EndData() {
+ return (EReference) getLinkAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkAction_InputValue() {
+ return (EReference) getLinkAction().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkEndData() {
+ if (linkEndDataEClass == null) {
+ linkEndDataEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(173);
+ }
+ return linkEndDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkEndData_Value() {
+ return (EReference) getLinkEndData().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkEndData_End() {
+ return (EReference) getLinkEndData().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkEndData_Qualifier() {
+ return (EReference) getLinkEndData().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getQualifierValue() {
+ if (qualifierValueEClass == null) {
+ qualifierValueEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(174);
+ }
+ return qualifierValueEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQualifierValue_Qualifier() {
+ return (EReference) getQualifierValue().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getQualifierValue_Value() {
+ return (EReference) getQualifierValue().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadLinkAction() {
+ if (readLinkActionEClass == null) {
+ readLinkActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(175);
+ }
+ return readLinkActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkAction_Result() {
+ return (EReference) getReadLinkAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkEndCreationData() {
+ if (linkEndCreationDataEClass == null) {
+ linkEndCreationDataEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(176);
+ }
+ return linkEndCreationDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkEndCreationData_IsReplaceAll() {
+ return (EAttribute) getLinkEndCreationData().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkEndCreationData_InsertAt() {
+ return (EReference) getLinkEndCreationData().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCreateLinkAction() {
+ if (createLinkActionEClass == null) {
+ createLinkActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(177);
+ }
+ return createLinkActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWriteLinkAction() {
+ if (writeLinkActionEClass == null) {
+ writeLinkActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(178);
+ }
+ return writeLinkActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDestroyLinkAction() {
+ if (destroyLinkActionEClass == null) {
+ destroyLinkActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(179);
+ }
+ return destroyLinkActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLinkEndDestructionData() {
+ if (linkEndDestructionDataEClass == null) {
+ linkEndDestructionDataEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(180);
+ }
+ return linkEndDestructionDataEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkEndDestructionData_IsDestroyDuplicates() {
+ return (EAttribute) getLinkEndDestructionData()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLinkEndDestructionData_DestroyAt() {
+ return (EReference) getLinkEndDestructionData()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClearAssociationAction() {
+ if (clearAssociationActionEClass == null) {
+ clearAssociationActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(181);
+ }
+ return clearAssociationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClearAssociationAction_Object() {
+ return (EReference) getClearAssociationAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClearAssociationAction_Association() {
+ return (EReference) getClearAssociationAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBroadcastSignalAction() {
+ if (broadcastSignalActionEClass == null) {
+ broadcastSignalActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(182);
+ }
+ return broadcastSignalActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getBroadcastSignalAction_Signal() {
+ return (EReference) getBroadcastSignalAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInvocationAction() {
+ if (invocationActionEClass == null) {
+ invocationActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(183);
+ }
+ return invocationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvocationAction_Argument() {
+ return (EReference) getInvocationAction().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInvocationAction_OnPort() {
+ return (EReference) getInvocationAction().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSendObjectAction() {
+ if (sendObjectActionEClass == null) {
+ sendObjectActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(184);
+ }
+ return sendObjectActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSendObjectAction_Target() {
+ return (EReference) getSendObjectAction().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSendObjectAction_Request() {
+ return (EReference) getSendObjectAction().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getValueSpecificationAction() {
+ if (valueSpecificationActionEClass == null) {
+ valueSpecificationActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(185);
+ }
+ return valueSpecificationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getValueSpecificationAction_Value() {
+ return (EReference) getValueSpecificationAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getValueSpecificationAction_Result() {
+ return (EReference) getValueSpecificationAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTimeExpression() {
+ if (timeExpressionEClass == null) {
+ timeExpressionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(186);
+ }
+ return timeExpressionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTimeExpression_FirstTime() {
+ return (EAttribute) getTimeExpression().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTimeExpression_Event() {
+ return (EReference) getTimeExpression().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDuration() {
+ if (durationEClass == null) {
+ durationEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(187);
+ }
+ return durationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getDuration_FirstTime() {
+ return (EAttribute) getDuration().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDuration_Event() {
+ return (EReference) getDuration().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTimeObservationAction() {
+ if (timeObservationActionEClass == null) {
+ timeObservationActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(188);
+ }
+ return timeObservationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTimeObservationAction_Now() {
+ return (EReference) getTimeObservationAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getValuePin() {
+ if (valuePinEClass == null) {
+ valuePinEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(189);
+ }
+ return valuePinEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getValuePin_Value() {
+ return (EReference) getValuePin().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDurationInterval() {
+ if (durationIntervalEClass == null) {
+ durationIntervalEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(190);
+ }
+ return durationIntervalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInterval() {
+ if (intervalEClass == null) {
+ intervalEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(191);
+ }
+ return intervalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterval_Min() {
+ return (EReference) getInterval().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInterval_Max() {
+ return (EReference) getInterval().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTimeConstraint() {
+ if (timeConstraintEClass == null) {
+ timeConstraintEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(192);
+ }
+ return timeConstraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getIntervalConstraint() {
+ if (intervalConstraintEClass == null) {
+ intervalConstraintEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(193);
+ }
+ return intervalConstraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTimeInterval() {
+ if (timeIntervalEClass == null) {
+ timeIntervalEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(194);
+ }
+ return timeIntervalEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDurationObservationAction() {
+ if (durationObservationActionEClass == null) {
+ durationObservationActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(195);
+ }
+ return durationObservationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDurationObservationAction_Duration() {
+ return (EReference) getDurationObservationAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDurationConstraint() {
+ if (durationConstraintEClass == null) {
+ durationConstraintEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(196);
+ }
+ return durationConstraintEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOpaqueAction() {
+ if (opaqueActionEClass == null) {
+ opaqueActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(197);
+ }
+ return opaqueActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOpaqueAction_Body() {
+ return (EAttribute) getOpaqueAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOpaqueAction_Language() {
+ return (EAttribute) getOpaqueAction().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOpaqueAction_InputValue() {
+ return (EReference) getOpaqueAction().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOpaqueAction_OutputValue() {
+ return (EReference) getOpaqueAction().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCallAction() {
+ if (callActionEClass == null) {
+ callActionEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(198);
+ }
+ return callActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCallAction_IsSynchronous() {
+ return (EAttribute) getCallAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCallAction_Result() {
+ return (EReference) getCallAction().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSendSignalAction() {
+ if (sendSignalActionEClass == null) {
+ sendSignalActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(199);
+ }
+ return sendSignalActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSendSignalAction_Target() {
+ return (EReference) getSendSignalAction().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSendSignalAction_Signal() {
+ return (EReference) getSendSignalAction().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCallOperationAction() {
+ if (callOperationActionEClass == null) {
+ callOperationActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(200);
+ }
+ return callOperationActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCallOperationAction_Operation() {
+ return (EReference) getCallOperationAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCallOperationAction_Target() {
+ return (EReference) getCallOperationAction().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCallBehaviorAction() {
+ if (callBehaviorActionEClass == null) {
+ callBehaviorActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(201);
+ }
+ return callBehaviorActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCallBehaviorAction_Behavior() {
+ return (EReference) getCallBehaviorAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInformationItem() {
+ if (informationItemEClass == null) {
+ informationItemEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(202);
+ }
+ return informationItemEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationItem_Represented() {
+ return (EReference) getInformationItem().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInformationFlow() {
+ if (informationFlowEClass == null) {
+ informationFlowEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(203);
+ }
+ return informationFlowEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_Realization() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_Conveyed() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_InformationSource() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_InformationTarget() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_RealizingActivityEdge() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_RealizingConnector() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getInformationFlow_RealizingMessage() {
+ return (EReference) getInformationFlow().getEStructuralFeatures()
+ .get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModel() {
+ if (modelEClass == null) {
+ modelEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(204);
+ }
+ return modelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModel_Viewpoint() {
+ return (EAttribute) getModel().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getVariableAction() {
+ if (variableActionEClass == null) {
+ variableActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(205);
+ }
+ return variableActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getVariableAction_Variable() {
+ return (EReference) getVariableAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadVariableAction() {
+ if (readVariableActionEClass == null) {
+ readVariableActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(206);
+ }
+ return readVariableActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadVariableAction_Result() {
+ return (EReference) getReadVariableAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWriteVariableAction() {
+ if (writeVariableActionEClass == null) {
+ writeVariableActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(207);
+ }
+ return writeVariableActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWriteVariableAction_Value() {
+ return (EReference) getWriteVariableAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClearVariableAction() {
+ if (clearVariableActionEClass == null) {
+ clearVariableActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(208);
+ }
+ return clearVariableActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAddVariableValueAction() {
+ if (addVariableValueActionEClass == null) {
+ addVariableValueActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(209);
+ }
+ return addVariableValueActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAddVariableValueAction_IsReplaceAll() {
+ return (EAttribute) getAddVariableValueAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAddVariableValueAction_InsertAt() {
+ return (EReference) getAddVariableValueAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRemoveVariableValueAction() {
+ if (removeVariableValueActionEClass == null) {
+ removeVariableValueActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(210);
+ }
+ return removeVariableValueActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRemoveVariableValueAction_IsRemoveDuplicates() {
+ return (EAttribute) getRemoveVariableValueAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRemoveVariableValueAction_RemoveAt() {
+ return (EReference) getRemoveVariableValueAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRaiseExceptionAction() {
+ if (raiseExceptionActionEClass == null) {
+ raiseExceptionActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(211);
+ }
+ return raiseExceptionActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getRaiseExceptionAction_Exception() {
+ return (EReference) getRaiseExceptionAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActionInputPin() {
+ if (actionInputPinEClass == null) {
+ actionInputPinEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(212);
+ }
+ return actionInputPinEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActionInputPin_FromAction() {
+ return (EReference) getActionInputPin().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadExtentAction() {
+ if (readExtentActionEClass == null) {
+ readExtentActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(213);
+ }
+ return readExtentActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadExtentAction_Result() {
+ return (EReference) getReadExtentAction().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadExtentAction_Classifier() {
+ return (EReference) getReadExtentAction().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReclassifyObjectAction() {
+ if (reclassifyObjectActionEClass == null) {
+ reclassifyObjectActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(214);
+ }
+ return reclassifyObjectActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getReclassifyObjectAction_IsReplaceAll() {
+ return (EAttribute) getReclassifyObjectAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReclassifyObjectAction_OldClassifier() {
+ return (EReference) getReclassifyObjectAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReclassifyObjectAction_NewClassifier() {
+ return (EReference) getReclassifyObjectAction()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReclassifyObjectAction_Object() {
+ return (EReference) getReclassifyObjectAction()
+ .getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadIsClassifiedObjectAction() {
+ if (readIsClassifiedObjectActionEClass == null) {
+ readIsClassifiedObjectActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(215);
+ }
+ return readIsClassifiedObjectActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getReadIsClassifiedObjectAction_IsDirect() {
+ return (EAttribute) getReadIsClassifiedObjectAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadIsClassifiedObjectAction_Classifier() {
+ return (EReference) getReadIsClassifiedObjectAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadIsClassifiedObjectAction_Result() {
+ return (EReference) getReadIsClassifiedObjectAction()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadIsClassifiedObjectAction_Object() {
+ return (EReference) getReadIsClassifiedObjectAction()
+ .getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getStartClassifierBehaviorAction() {
+ if (startClassifierBehaviorActionEClass == null) {
+ startClassifierBehaviorActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(216);
+ }
+ return startClassifierBehaviorActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getStartClassifierBehaviorAction_Object() {
+ return (EReference) getStartClassifierBehaviorAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadLinkObjectEndAction() {
+ if (readLinkObjectEndActionEClass == null) {
+ readLinkObjectEndActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(217);
+ }
+ return readLinkObjectEndActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkObjectEndAction_Object() {
+ return (EReference) getReadLinkObjectEndAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkObjectEndAction_End() {
+ return (EReference) getReadLinkObjectEndAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkObjectEndAction_Result() {
+ return (EReference) getReadLinkObjectEndAction()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReadLinkObjectEndQualifierAction() {
+ if (readLinkObjectEndQualifierActionEClass == null) {
+ readLinkObjectEndQualifierActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(218);
+ }
+ return readLinkObjectEndQualifierActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkObjectEndQualifierAction_Object() {
+ return (EReference) getReadLinkObjectEndQualifierAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkObjectEndQualifierAction_Result() {
+ return (EReference) getReadLinkObjectEndQualifierAction()
+ .getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReadLinkObjectEndQualifierAction_Qualifier() {
+ return (EReference) getReadLinkObjectEndQualifierAction()
+ .getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCreateLinkObjectAction() {
+ if (createLinkObjectActionEClass == null) {
+ createLinkObjectActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(219);
+ }
+ return createLinkObjectActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCreateLinkObjectAction_Result() {
+ return (EReference) getCreateLinkObjectAction()
+ .getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAcceptEventAction() {
+ if (acceptEventActionEClass == null) {
+ acceptEventActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(220);
+ }
+ return acceptEventActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getAcceptEventAction_IsUnmarshall() {
+ return (EAttribute) getAcceptEventAction().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptEventAction_Result() {
+ return (EReference) getAcceptEventAction().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptEventAction_Trigger() {
+ return (EReference) getAcceptEventAction().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAcceptCallAction() {
+ if (acceptCallActionEClass == null) {
+ acceptCallActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(221);
+ }
+ return acceptCallActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAcceptCallAction_ReturnInformation() {
+ return (EReference) getAcceptCallAction().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getReplyAction() {
+ if (replyActionEClass == null) {
+ replyActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(222);
+ }
+ return replyActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReplyAction_ReplyToCall() {
+ return (EReference) getReplyAction().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReplyAction_ReturnInformation() {
+ return (EReference) getReplyAction().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getReplyAction_ReplyValue() {
+ return (EReference) getReplyAction().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUnmarshallAction() {
+ if (unmarshallActionEClass == null) {
+ unmarshallActionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(223);
+ }
+ return unmarshallActionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUnmarshallAction_Result() {
+ return (EReference) getUnmarshallAction().getEStructuralFeatures().get(
+ 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUnmarshallAction_UnmarshallType() {
+ return (EReference) getUnmarshallAction().getEStructuralFeatures().get(
+ 1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getUnmarshallAction_Object() {
+ return (EReference) getUnmarshallAction().getEStructuralFeatures().get(
+ 2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getControlNode() {
+ if (controlNodeEClass == null) {
+ controlNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(224);
+ }
+ return controlNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getControlFlow() {
+ if (controlFlowEClass == null) {
+ controlFlowEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(225);
+ }
+ return controlFlowEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getInitialNode() {
+ if (initialNodeEClass == null) {
+ initialNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(226);
+ }
+ return initialNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivityParameterNode() {
+ if (activityParameterNodeEClass == null) {
+ activityParameterNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(227);
+ }
+ return activityParameterNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getActivityParameterNode_Parameter() {
+ return (EReference) getActivityParameterNode().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getForkNode() {
+ if (forkNodeEClass == null) {
+ forkNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(228);
+ }
+ return forkNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFlowFinalNode() {
+ if (flowFinalNodeEClass == null) {
+ flowFinalNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(229);
+ }
+ return flowFinalNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFinalNode() {
+ if (finalNodeEClass == null) {
+ finalNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(230);
+ }
+ return finalNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCentralBufferNode() {
+ if (centralBufferNodeEClass == null) {
+ centralBufferNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(231);
+ }
+ return centralBufferNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getMergeNode() {
+ if (mergeNodeEClass == null) {
+ mergeNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(232);
+ }
+ return mergeNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDecisionNode() {
+ if (decisionNodeEClass == null) {
+ decisionNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(233);
+ }
+ return decisionNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getDecisionNode_DecisionInput() {
+ return (EReference) getDecisionNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getActivityFinalNode() {
+ if (activityFinalNodeEClass == null) {
+ activityFinalNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(234);
+ }
+ return activityFinalNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getJoinNode() {
+ if (joinNodeEClass == null) {
+ joinNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(235);
+ }
+ return joinNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getJoinNode_IsCombineDuplicate() {
+ return (EAttribute) getJoinNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getJoinNode_JoinSpec() {
+ return (EReference) getJoinNode().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDataStoreNode() {
+ if (dataStoreNodeEClass == null) {
+ dataStoreNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(236);
+ }
+ return dataStoreNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getObjectFlow() {
+ if (objectFlowEClass == null) {
+ objectFlowEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(237);
+ }
+ return objectFlowEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getObjectFlow_IsMulticast() {
+ return (EAttribute) getObjectFlow().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getObjectFlow_IsMultireceive() {
+ return (EAttribute) getObjectFlow().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getObjectFlow_Transformation() {
+ return (EReference) getObjectFlow().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getObjectFlow_Selection() {
+ return (EReference) getObjectFlow().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSequenceNode() {
+ if (sequenceNodeEClass == null) {
+ sequenceNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(238);
+ }
+ return sequenceNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSequenceNode_ExecutableNode() {
+ return (EReference) getSequenceNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getConditionalNode() {
+ if (conditionalNodeEClass == null) {
+ conditionalNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(239);
+ }
+ return conditionalNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConditionalNode_IsDeterminate() {
+ return (EAttribute) getConditionalNode().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getConditionalNode_IsAssured() {
+ return (EAttribute) getConditionalNode().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalNode_Clause() {
+ return (EReference) getConditionalNode().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getConditionalNode_Result() {
+ return (EReference) getConditionalNode().getEStructuralFeatures()
+ .get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClause() {
+ if (clauseEClass == null) {
+ clauseEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(240);
+ }
+ return clauseEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClause_Test() {
+ return (EReference) getClause().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClause_Body() {
+ return (EReference) getClause().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClause_PredecessorClause() {
+ return (EReference) getClause().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClause_SuccessorClause() {
+ return (EReference) getClause().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClause_Decider() {
+ return (EReference) getClause().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClause_BodyOutput() {
+ return (EReference) getClause().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLoopNode() {
+ if (loopNodeEClass == null) {
+ loopNodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(241);
+ }
+ return loopNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLoopNode_IsTestedFirst() {
+ return (EAttribute) getLoopNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_BodyPart() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_SetupPart() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_Decider() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_Test() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_Result() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_LoopVariable() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_BodyOutput() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getLoopNode_LoopVariableInput() {
+ return (EReference) getLoopNode().getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExpansionNode() {
+ if (expansionNodeEClass == null) {
+ expansionNodeEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(242);
+ }
+ return expansionNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpansionNode_RegionAsOutput() {
+ return (EReference) getExpansionNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpansionNode_RegionAsInput() {
+ return (EReference) getExpansionNode().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExpansionRegion() {
+ if (expansionRegionEClass == null) {
+ expansionRegionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(243);
+ }
+ return expansionRegionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getExpansionRegion_Mode() {
+ return (EAttribute) getExpansionRegion().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpansionRegion_InputElement() {
+ return (EReference) getExpansionRegion().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getExpansionRegion_OutputElement() {
+ return (EReference) getExpansionRegion().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComponentRealization() {
+ if (componentRealizationEClass == null) {
+ componentRealizationEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(245);
+ }
+ return componentRealizationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComponentRealization_Abstraction() {
+ return (EReference) getComponentRealization().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComponentRealization_RealizingClassifier() {
+ return (EReference) getComponentRealization().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getComponent() {
+ if (componentEClass == null) {
+ componentEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(246);
+ }
+ return componentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getComponent_IsIndirectlyInstantiated() {
+ return (EAttribute) getComponent().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComponent_Required() {
+ return (EReference) getComponent().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComponent_Provided() {
+ return (EReference) getComponent().getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComponent_PackagedElement() {
+ return (EReference) getComponent().getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getComponent_Realization() {
+ return (EReference) getComponent().getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNode() {
+ if (nodeEClass == null) {
+ nodeEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(247);
+ }
+ return nodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNode_NestedNode() {
+ return (EReference) getNode().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getDevice() {
+ if (deviceEClass == null) {
+ deviceEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(248);
+ }
+ return deviceEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getExecutionEnvironment() {
+ if (executionEnvironmentEClass == null) {
+ executionEnvironmentEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(249);
+ }
+ return executionEnvironmentEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCommunicationPath() {
+ if (communicationPathEClass == null) {
+ communicationPathEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(250);
+ }
+ return communicationPathEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFinalState() {
+ if (finalStateEClass == null) {
+ finalStateEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(251);
+ }
+ return finalStateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTimeEvent() {
+ if (timeEventEClass == null) {
+ timeEventEClass = (EClass) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(252);
+ }
+ return timeEventEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTimeEvent_IsRelative() {
+ return (EAttribute) getTimeEvent().getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTimeEvent_When() {
+ return (EReference) getTimeEvent().getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProtocolTransition() {
+ if (protocolTransitionEClass == null) {
+ protocolTransitionEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(253);
+ }
+ return protocolTransitionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProtocolTransition_PostCondition() {
+ return (EReference) getProtocolTransition().getEStructuralFeatures()
+ .get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProtocolTransition_Referred() {
+ return (EReference) getProtocolTransition().getEStructuralFeatures()
+ .get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProtocolTransition_PreCondition() {
+ return (EReference) getProtocolTransition().getEStructuralFeatures()
+ .get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAssociationClass() {
+ if (associationClassEClass == null) {
+ associationClassEClass = (EClass) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(254);
+ }
+ return associationClassEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getVisibilityKind() {
+ if (visibilityKindEEnum == null) {
+ visibilityKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(4);
+ }
+ return visibilityKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getCallConcurrencyKind() {
+ if (callConcurrencyKindEEnum == null) {
+ callConcurrencyKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(57);
+ }
+ return callConcurrencyKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getTransitionKind() {
+ if (transitionKindEEnum == null) {
+ transitionKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(67);
+ }
+ return transitionKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getPseudostateKind() {
+ if (pseudostateKindEEnum == null) {
+ pseudostateKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(74);
+ }
+ return pseudostateKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getAggregationKind() {
+ if (aggregationKindEEnum == null) {
+ aggregationKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(78);
+ }
+ return aggregationKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getParameterDirectionKind() {
+ if (parameterDirectionKindEEnum == null) {
+ parameterDirectionKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(81);
+ }
+ return parameterDirectionKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getParameterEffectKind() {
+ if (parameterEffectKindEEnum == null) {
+ parameterEffectKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(82);
+ }
+ return parameterEffectKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getConnectorKind() {
+ if (connectorKindEEnum == null) {
+ connectorKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(87);
+ }
+ return connectorKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMessageKind() {
+ if (messageKindEEnum == null) {
+ messageKindEEnum = (EEnum) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(113);
+ }
+ return messageKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getMessageSort() {
+ if (messageSortEEnum == null) {
+ messageSortEEnum = (EEnum) EPackage.Registry.INSTANCE.getEPackage(
+ UMLPackage.eNS_URI).getEClassifiers().get(114);
+ }
+ return messageSortEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getObjectNodeOrderingKind() {
+ if (objectNodeOrderingKindEEnum == null) {
+ objectNodeOrderingKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(134);
+ }
+ return objectNodeOrderingKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getInteractionOperatorKind() {
+ if (interactionOperatorKindEEnum == null) {
+ interactionOperatorKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(154);
+ }
+ return interactionOperatorKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EEnum getExpansionKind() {
+ if (expansionKindEEnum == null) {
+ expansionKindEEnum = (EEnum) EPackage.Registry.INSTANCE
+ .getEPackage(UMLPackage.eNS_URI).getEClassifiers().get(244);
+ }
+ return expansionKindEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UMLFactory getUMLFactory() {
+ return (UMLFactory) getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isLoaded = false;
+
+ /**
+ * Laods the package and any sub-packages from their serialized form.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isFixed = false;
+
+ /**
+ * Fixes up the loaded package, to make it appear as if it had been programmatically built.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unmarshall Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getResults <em>Result</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getUnmarshallType <em>Unmarshall Type</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UnmarshallActionImpl#getObject <em>Object</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UnmarshallActionImpl
+ extends ActionImpl
+ implements UnmarshallAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnmarshallActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getUnmarshallAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classifier basicGetUnmarshallType() {
+ return (Classifier) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__UNMARSHALL_TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getObject() {
+ InputPin object = (InputPin) eVirtualGet(UMLPackage.UNMARSHALL_ACTION__OBJECT);
+ return object;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject(EClass eClass) {
+ InputPin newObject = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createObject() {
+ InputPin newObject = UMLFactory.eINSTANCE.createInputPin();
+ setObject(newObject);
+ return newObject;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return UnmarshallActionOperations.validateSameType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfObject(DiagnosticChain diagnostics,
+ Map context) {
+ return UnmarshallActionOperations.validateMultiplicityOfObject(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNumberOfResult(DiagnosticChain diagnostics,
+ Map context) {
+ return UnmarshallActionOperations.validateNumberOfResult(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTypeAndOrdering(DiagnosticChain diagnostics,
+ Map context) {
+ return UnmarshallActionOperations.validateTypeAndOrdering(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicityOfResult(DiagnosticChain diagnostics,
+ Map context) {
+ return UnmarshallActionOperations.validateMultiplicityOfResult(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateStructuralFeature(DiagnosticChain diagnostics,
+ Map context) {
+ return UnmarshallActionOperations.validateStructuralFeature(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUnmarshallTypeIsClassifier(
+ DiagnosticChain diagnostics, Map context) {
+ return UnmarshallActionOperations.validateUnmarshallTypeIsClassifier(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOutputs() {
+ return super.isSetOutputs()
+ || eIsSet(UMLPackage.eINSTANCE.getUnmarshallAction_Result());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Usage</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class UsageImpl
+ extends DependencyImpl
+ implements Usage {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UsageImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Use Case</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getOwnedMembers <em>Owned Member</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getIncludes <em>Include</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getExtends <em>Extend</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getExtensionPoints <em>Extension Point</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.UseCaseImpl#getSubjects <em>Subject</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UseCaseImpl
+ extends BehavioredClassifierImpl
+ implements UseCase {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UseCaseImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getUseCase();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Include createInclude() {
+ Include newInclude = UMLFactory.eINSTANCE.createInclude();
+ getIncludes().add(newInclude);
+ return newInclude;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Extend createExtend() {
+ Extend newExtend = UMLFactory.eINSTANCE.createExtend();
+ getExtends().add(newExtend);
+ return newExtend;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ExtensionPoint createExtensionPoint() {
+ ExtensionPoint newExtensionPoint = UMLFactory.eINSTANCE
+ .createExtensionPoint();
+ getExtensionPoints().add(newExtensionPoint);
+ return newExtensionPoint;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMustHaveName(DiagnosticChain diagnostics, Map context) {
+ return UseCaseOperations.validateMustHaveName(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateBinaryAssociations(DiagnosticChain diagnostics,
+ Map context) {
+ return UseCaseOperations.validateBinaryAssociations(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateNoAssociationToUseCase(DiagnosticChain diagnostics,
+ Map context) {
+ return UseCaseOperations.validateNoAssociationToUseCase(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCannotIncludeSelf(DiagnosticChain diagnostics,
+ Map context) {
+ return UseCaseOperations.validateCannotIncludeSelf(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Value Pin</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ValuePinImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValuePinImpl
+ extends InputPinImpl
+ implements ValuePin {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ValuePinImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getValuePin();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getValue() {
+ ValueSpecification value = (ValueSpecification) eVirtualGet(UMLPackage.VALUE_PIN__VALUE);
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createValue(EClass eClass) {
+ ValueSpecification newValue = (ValueSpecification) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompatibleType(DiagnosticChain diagnostics,
+ Map context) {
+ return ValuePinOperations.validateCompatibleType(this, diagnostics,
+ context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Value Specification Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl#getOutputs <em>Output</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationActionImpl#getResult <em>Result</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ValueSpecificationActionImpl
+ extends ActionImpl
+ implements ValueSpecificationAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ValueSpecificationActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getValueSpecificationAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getValue() {
+ ValueSpecification value = (ValueSpecification) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__VALUE);
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createValue(EClass eClass) {
+ ValueSpecification newValue = (ValueSpecification) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin getResult() {
+ OutputPin result = (OutputPin) eVirtualGet(UMLPackage.VALUE_SPECIFICATION_ACTION__RESULT);
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OutputPin createResult() {
+ OutputPin newResult = UMLFactory.eINSTANCE.createOutputPin();
+ setResult(newResult);
+ return newResult;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateCompatibleType(DiagnosticChain diagnostics,
+ Map context) {
+ return ValueSpecificationActionOperations.validateCompatibleType(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return ValueSpecificationActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Value Specification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.ValueSpecificationImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ValueSpecificationImpl
+ extends PackageableElementImpl
+ implements ValueSpecification {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ValueSpecificationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getValueSpecification();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Type basicGetType() {
+ return (Type) eVirtualGet(UMLPackage.VALUE_SPECIFICATION__TYPE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isComputable() {
+ return ValueSpecificationOperations.isComputable(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int integerValue() {
+ return ValueSpecificationOperations.integerValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean booleanValue() {
+ return ValueSpecificationOperations.booleanValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String stringValue() {
+ return ValueSpecificationOperations.stringValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int unlimitedValue() {
+ return ValueSpecificationOperations.unlimitedValue(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isNull() {
+ return ValueSpecificationOperations.isNull(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isCompatibleWith(ParameterableElement p) {
+ return ValueSpecificationOperations.isCompatibleWith(this, p);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableActionImpl#getVariable <em>Variable</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class VariableActionImpl
+ extends ActionImpl
+ implements VariableAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getVariableAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Variable basicGetVariable() {
+ return (Variable) eVirtualGet(UMLPackage.VARIABLE_ACTION__VARIABLE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateScopeOfVariable(DiagnosticChain diagnostics,
+ Map context) {
+ return VariableActionOperations.validateScopeOfVariable(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Variable</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getOwnedElements <em>Owned Element</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#isOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#isUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getUpper <em>Upper</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getLower <em>Lower</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getUpperValue <em>Upper Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getLowerValue <em>Lower Value</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getActivityScope <em>Activity Scope</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VariableImpl#getScope <em>Scope</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class VariableImpl
+ extends TypedElementImpl
+ implements Variable {
+
+ /**
+ * The default value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The flag representing the value of the '{@link #isOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_ORDERED_EFLAG = 1 << 8;
+
+ /**
+ * The default value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The flag representing the value of the '{@link #isUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final int IS_UNIQUE_EFLAG = 1 << 9;
+
+ /**
+ * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUpper()
+ * @generated
+ * @ordered
+ */
+ protected static final int UPPER_EDEFAULT = 1;
+
+ /**
+ * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLower()
+ * @generated
+ * @ordered
+ */
+ protected static final int LOWER_EDEFAULT = 1;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VariableImpl() {
+ super();
+ eFlags |= IS_UNIQUE_EFLAG;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getVariable();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isOrdered() {
+ return (eFlags & IS_ORDERED_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isUnique() {
+ return (eFlags & IS_UNIQUE_EFLAG) != 0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getUpperValue() {
+ ValueSpecification upperValue = (ValueSpecification) eVirtualGet(UMLPackage.VARIABLE__UPPER_VALUE);
+ return upperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createUpperValue(EClass eClass) {
+ ValueSpecification newUpperValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setUpperValue(newUpperValue);
+ return newUpperValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification getLowerValue() {
+ ValueSpecification lowerValue = (ValueSpecification) eVirtualGet(UMLPackage.VARIABLE__LOWER_VALUE);
+ return lowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ValueSpecification createLowerValue(EClass eClass) {
+ ValueSpecification newLowerValue = (ValueSpecification) eClass
+ .getEPackage().getEFactoryInstance().create(eClass);
+ setLowerValue(newLowerValue);
+ return newLowerValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Activity getActivityScope() {
+ if (eContainerFeatureID != UMLPackage.VARIABLE__ACTIVITY_SCOPE)
+ return null;
+ return (Activity) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StructuredActivityNode getScope() {
+ if (eContainerFeatureID != UMLPackage.VARIABLE__SCOPE)
+ return null;
+ return (StructuredActivityNode) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGt0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGt0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateLowerGe0(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateLowerGe0(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUpperGeLower(DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations.validateUpperGeLower(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationNoSideEffects(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationNoSideEffects(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateValueSpecificationConstant(
+ DiagnosticChain diagnostics, Map context) {
+ return MultiplicityElementOperations
+ .validateValueSpecificationConstant(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isMultivalued() {
+ return MultiplicityElementOperations.isMultivalued(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesCardinality(int C) {
+ return MultiplicityElementOperations.includesCardinality(this, C);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean includesMultiplicity(MultiplicityElement M) {
+ return MultiplicityElementOperations.includesMultiplicity(this, M);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int lowerBound() {
+ return MultiplicityElementOperations.lowerBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int upperBound() {
+ return MultiplicityElementOperations.upperBound(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateOwned(DiagnosticChain diagnostics, Map context) {
+ return VariableOperations.validateOwned(this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isAccessibleBy(Action a) {
+ return VariableOperations.isAccessibleBy(this, a);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetOwnedElements() {
+ return super.isSetOwnedElements()
+ || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_UpperValue())
+ || eIsSet(UMLPackage.eINSTANCE.getMultiplicityElement_LowerValue());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Element basicGetOwner() {
+ Activity activityScope = getActivityScope();
+ if (activityScope != null) {
+ return activityScope;
+ }
+ StructuredActivityNode scope = getScope();
+ if (scope != null) {
+ return scope;
+ }
+ return super.basicGetOwner();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Vertex</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VertexImpl#getOutgoings <em>Outgoing</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VertexImpl#getIncomings <em>Incoming</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.VertexImpl#getContainer <em>Container</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class VertexImpl
+ extends NamedElementImpl
+ implements Vertex {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected VertexImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getVertex();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Region getContainer() {
+ if (eContainerFeatureID != UMLPackage.VERTEX__CONTAINER)
+ return null;
+ return (Region) eContainer;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StateMachine containingStatemachine() {
+ return VertexOperations.containingStatemachine(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Namespace basicGetNamespace() {
+ Region container = getContainer();
+ if (container != null) {
+ return container;
+ }
+ return super.basicGetNamespace();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Write Link Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class WriteLinkActionImpl
+ extends LinkActionImpl
+ implements WriteLinkAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriteLinkActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getWriteLinkAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Write Structural Feature Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.WriteStructuralFeatureActionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class WriteStructuralFeatureActionImpl
+ extends StructuralFeatureActionImpl
+ implements WriteStructuralFeatureAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriteStructuralFeatureActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getWriteStructuralFeatureAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getValue() {
+ InputPin value = (InputPin) eVirtualGet(UMLPackage.WRITE_STRUCTURAL_FEATURE_ACTION__VALUE);
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue(EClass eClass) {
+ InputPin newValue = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue() {
+ InputPin newValue = UMLFactory.eINSTANCE.createInputPin();
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateInputPin(DiagnosticChain diagnostics, Map context) {
+ return WriteStructuralFeatureActionOperations.validateInputPin(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return WriteStructuralFeatureActionOperations.validateMultiplicity(
+ this, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Write Variable Action</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.WriteVariableActionImpl#getInputs <em>Input</em>}</li>
+ * <li>{@link org.eclipse.uml2.uml.internal.impl.WriteVariableActionImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class WriteVariableActionImpl
+ extends VariableActionImpl
+ implements WriteVariableAction {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WriteVariableActionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return UMLPackage.eINSTANCE.getWriteVariableAction();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin getValue() {
+ InputPin value = (InputPin) eVirtualGet(UMLPackage.WRITE_VARIABLE_ACTION__VALUE);
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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));
+
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue(EClass eClass) {
+ InputPin newValue = (InputPin) eClass.getEPackage()
+ .getEFactoryInstance().create(eClass);
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public InputPin createValue() {
+ InputPin newValue = UMLFactory.eINSTANCE.createInputPin();
+ setValue(newValue);
+ return newValue;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateSameType(DiagnosticChain diagnostics, Map context) {
+ return WriteVariableActionOperations.validateSameType(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateMultiplicity(DiagnosticChain diagnostics, Map context) {
+ return WriteVariableActionOperations.validateMultiplicity(this,
+ diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="uml"
+ nsURI="http://www.eclipse.org/uml2/2.0.0/UML" nsPrefix="uml">
+ <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A comment is a textual annotation that can be attached to a set of elements.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a string that is the comment."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="annotatedElement" ordered="false"
+ upperBound="-1" eType="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Element(s) being commented."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true" eSuperTypes="http://www.eclipse.org/emf/2002/Ecore#//EModelElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An element can own comments.&#xD;&#xA;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.&#xD;&#xA; An element is a constituent of a model. An element can own comments."/>
+ </eAnnotations>
+ <eOperations name="not_own_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An element may not directly or indirectly own itself.&#xD;&#xA;not self.allOwnedElements()->includes(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="has_owner" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Elements that must be owned must have an owner.&#xD;&#xA;self.mustBeOwned() implies owner->notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="allOwnedElements" ordered="false" upperBound="-1" eType="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query allOwnedElements() gives all of the direct and indirect owned elements of an element.&#xD;&#xA;result = ownedElement->union(ownedElement->collect(e | e.allOwnedElements()))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="mustBeOwned" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedElement" ordered="false"
+ upperBound="-1" eType="#//Element" changeable="false" transient="true" derived="true"
+ resolveProxies="false" eOpposite="#//Element/owner">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Elements owned by this element."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owner" ordered="false"
+ eType="#//Element" changeable="false" transient="true" derived="true" eOpposite="#//Element/ownedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Element that owns this element."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedComment" ordered="false"
+ upperBound="-1" eType="#//Comment" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Comments owned by this element."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DirectedRelationship" abstract="true"
+ eSuperTypes="#//Relationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A directed relationship references one or more source elements and one or more target elements. DirectedRelationship is an abstract metaclass."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the sources of the DirectedRelationship."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the targets of the DirectedRelationship."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Relationship" abstract="true" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A relationship references one or more related elements. Relationship is an abstract metaclass."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="relatedElement" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Element" changeable="false" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the elements related by the Relationship."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="VisibilityKind is an enumeration of the following literal values:&#xA;&#xA; - public&#xA;&#xA; - private&#xA;&#xA; - protected&#xA;&#xA; - package"/>
+ </eAnnotations>
+ <eLiterals name="public">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A public element is visible to all elements that can access the contents of the namespace that owns it."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="private" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A private element is only visible inside the namespace that owns it."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="protected" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A protected element is visible to elements that have a generalization relationship to the namespace that owns it."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="package" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LiteralSpecification" abstract="true"
+ eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A literal specification is an abstract specialization of ValueSpecification that identifies a literal constant being modeled."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueSpecification" abstract="true"
+ eSuperTypes="#//PackageableElement #//TypedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isCompatibleWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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. In addition, for ValueSpecification, the type must be conformant with the type of the specified parameterable element.&#xA;&#xA;&#xD;&#xA;result = p->oclIsKindOf(self.oclType) and self.type.conformsTo(p.oclAsType(TypedElement).type)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ParameterableElement/isCompatibleWith"/>
+ <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="isComputable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="integerValue" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query integerValue() gives a single Integer value when one can be computed.&#xD;&#xA;result = Set{}"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="booleanValue" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query booleanValue() gives a single Boolean value when one can be computed.&#xD;&#xA;result = Set{}"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="stringValue" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query stringValue() gives a single String value when one can be computed.&#xD;&#xA;result = Set{}"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="unlimitedValue" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query unlimitedValue() gives a single UnlimitedNatural value when one can be computed.&#xD;&#xA;result = Set{}"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNull" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isNull() returns true when it can be computed that the value is null.&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;A typed element is an element that has a type that serves as a constraint on the range of values the element can represent.&#xA;&#xA;Typed element is an abstract metaclass.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;The type of the TypedElement."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="NamedElement has a visibility attribute.&#xD;&#xA;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.&#xD;&#xA;NamedElement specializes Kernel::NamedElement and adds a composition association to Expression."/>
+ </eAnnotations>
+ <eOperations name="no_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If there is no name, or one of the containing namespaces has no name, there is no qualified name.&#xD;&#xA;(self.name->isEmpty() or self.allNamespaces()->select(ns | ns.name->isEmpty())->notEmpty())&#xA;&#xA; implies self.qualifiedName->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="qualified_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;(self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()) implies&#xA; self.qualifiedName = self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="visibility_needs_ownership" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a NamedElement is not owned by a Namespace, it does not have a visibility.&#xD;&#xA;namespace->isEmpty() implies visibility->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="qualifiedName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = if self.name->notEmpty() and self.allNamespaces()->select(ns | ns.name->isEmpty())->isEmpty()&#xA;then &#xA; self.allNamespaces()->iterate( ns : Namespace; result: String = self.name | ns.name->union(self.separator())->union(result))&#xA;else&#xA; Set{}&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="allNamespaces" upperBound="-1" eType="#//Namespace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query allNamespaces() gives the sequence of namespaces in which the NamedElement is nested, working outwards.&#xD;&#xA;result = if self.namespace->isEmpty()&#xA;then Sequence{}&#xA;else self.namespace.allNamespaces()->prepend(self.namespace)&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isDistinguishableFrom" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = if self.oclIsKindOf(n.oclType) or n.oclIsKindOf(self.oclType)&#xA;then ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->isEmpty()&#xA;else true&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+ <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
+ </eOperations>
+ <eOperations name="separator" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query separator() gives the string that is used to separate names when constructing a qualified name.&#xD;&#xA;result = '::'"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ iD="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The name of the NamedElement."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+ eType="#//VisibilityKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines where the NamedElement appears within different Namespaces within the overall model, and its accessibility."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
+ volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="clientDependency" ordered="false"
+ upperBound="-1" eType="#//Dependency" eOpposite="#//Dependency/client">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates the dependencies that reference the client."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" ordered="false"
+ eType="#//Namespace" changeable="false" transient="true" derived="true" eOpposite="#//Namespace/ownedMember">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nameExpression" ordered="false"
+ eType="#//StringExpression" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The string expression used to define the name of this named element."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Dependency" eSuperTypes="#//PackageableElement #//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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)."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="supplier" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="client" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//NamedElement" eOpposite="#//NamedElement/clientDependency">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageableElement" abstract="true"
+ eSuperTypes="#//NamedElement #//ParameterableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A packageable element indicates a named element that may be owned directly by a package.&#xD;&#xA;PackageableElements are extended to enable any such element to serve as a template parameter."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EAttribute" name="visibility" ordered="false" eType="#//VisibilityKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that packageable elements must always have a visibility, i.e., visibility is not optional."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//NamedElement/visibility"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParameterableElement" abstract="true"
+ eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;ParameterableElement is an abstract metaclass.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="isCompatibleWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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.&#xD;&#xA;result = p->oclIsKindOf(self.oclType)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="p" ordered="false" lowerBound="1" eType="#//ParameterableElement"/>
+ </eOperations>
+ <eOperations name="isTemplateParameter" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isTemplateParameter() determines if this parameterable element is exposed as a formal template parameter.&#xD;&#xA;result = templateParameter->notEmpty()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+ eType="#//TemplateParameter" eOpposite="#//TemplateParameter/parameteredElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningTemplateParameter"
+ ordered="false" eType="#//TemplateParameter" transient="true" eOpposite="#//TemplateParameter/ownedParameteredElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The formal template parameter that owns this element."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner #//ParameterableElement/templateParameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateParameter" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TemplateParameter references a ParameterableElement which is exposed as a formal template parameter in the containing template."/>
+ </eAnnotations>
+ <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The default must be compatible with the formal template parameter.&#xD;&#xA;default->notEmpty() implies default->isCompatibleWith(parameteredElement)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+ lowerBound="1" eType="#//TemplateSignature" transient="true" eOpposite="#//TemplateSignature/ownedParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template signature that owns this template parameter."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameteredElement"
+ ordered="false" eType="#//ParameterableElement" containment="true" resolveProxies="false"
+ eOpposite="#//ParameterableElement/owningTemplateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element that is owned by this template parameter."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateParameter/parameteredElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
+ eType="#//ParameterableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element that is the default for this formal template parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedDefault" ordered="false"
+ eType="#//ParameterableElement" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element that is owned by this template parameter for the purpose of providing a default."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//TemplateParameter/default #//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+ lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ParameterableElement/templateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element exposed by this template parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateSignature" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding."/>
+ </eAnnotations>
+ <eOperations name="own_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Parameters must own the elements they parameter or those elements must be owned by the element being templated.&#xD;&#xA;templatedElement.ownedElement->includesAll(parameter.parameteredElement - parameter.ownedParameteredElement)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
+ upperBound="-1" eType="#//TemplateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ordered set of all formal template parameters for this template signature."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="template" ordered="false"
+ lowerBound="1" eType="#//TemplateableElement" transient="true" eOpposite="#//TemplateableElement/ownedTemplateSignature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element that owns this template signature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" ordered="false"
+ upperBound="-1" eType="#//TemplateParameter" containment="true" resolveProxies="false"
+ eOpposite="#//TemplateParameter/signature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The formal template parameters that are owned by this template signature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement #//TemplateSignature/parameter"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateableElement" abstract="true"
+ eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="parameterableElements" ordered="false" upperBound="-1" eType="#//ParameterableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = allOwnedElements->select(oclIsKindOf(ParameterableElement))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isTemplate" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xD;&#xA;result = ownedSignature->notEmpty()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
+ upperBound="-1" eType="#//TemplateBinding" containment="true" resolveProxies="false"
+ eOpposite="#//TemplateBinding/boundElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The optional bindings from this element to templates."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTemplateSignature"
+ ordered="false" eType="#//TemplateSignature" containment="true" resolveProxies="false"
+ eOpposite="#//TemplateSignature/template">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateBinding" eSuperTypes="#//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ <eOperations name="parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Each parameter substitution must refer to a formal template parameter of the target template signature.&#xD;&#xA;parameterSubstitution->forAll(b | template.parameter->includes(b.formal))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="one_parameter_substitution" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A binding contains at most one parameter substitution for each formal template parameter of the target template signature.&#xD;&#xA;template.parameter->forAll(p | parameterSubstitution->select(b | b.formal = p)->size() &lt;= 1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+ lowerBound="1" eType="#//TemplateSignature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template signature for the template that is the target of the binding."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitution"
+ ordered="false" upperBound="-1" eType="#//TemplateParameterSubstitution" containment="true"
+ resolveProxies="false" eOpposite="#//TemplateParameterSubstitution/templateBinding">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameter substitutions owned by this template binding."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="boundElement" ordered="false"
+ lowerBound="1" eType="#//TemplateableElement" transient="true" eOpposite="#//TemplateableElement/templateBinding">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The element that is bound by this binding."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner #//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TemplateParameterSubstitution" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TemplateParameterSubstitution associates one or more actual parameters with a formal template parameter within the context of a TemplateBinding."/>
+ </eAnnotations>
+ <eOperations name="must_be_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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.&#xD;&#xA;actual->forAll(a | a.isCompatibleWith(formal.parameteredElement))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="formal" ordered="false"
+ lowerBound="1" eType="#//TemplateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The formal template parameter that is associated with this substitution."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actual" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//ParameterableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The elements that are the actual parameters for this substitution."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedActual" ordered="false"
+ upperBound="-1" eType="#//ParameterableElement" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual parameters that are owned by this substitution."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//TemplateParameterSubstitution/actual #//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="templateBinding" ordered="false"
+ lowerBound="1" eType="#//TemplateBinding" transient="true" eOpposite="#//TemplateBinding/parameterSubstitution">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The optional bindings from this element to templates."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Namespace" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;&#xA;&#xA;&#xA;A namespace can own constraints. The constraint does not necessarily apply to the namespace itself, but may also apply to elements in the namespace.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="members_are_distinguishable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All the members of a Namespace are distinguishable within it.&#xD;&#xA;membersAreDistinguishable()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="getImportedMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;The importedMember property is derived from the ElementImports and the PackageImports.&#xD;&#xA;result = self.importMembers(self.elementImport.importedElement.asSet()-&#xA;>union(self.packageImport.importedPackage->collect(p | p.visibleMembers())))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getNamesOfMember" ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;result = if self.ownedMember ->includes(element)&#xA;then Set{}->include(element.name)&#xA;else let elementImports: ElementImport = self.elementImport->select(ei | ei.importedElement = element) in&#xA; if elementImports->notEmpty()&#xA; then elementImports->collect(el | el.getName())&#xA; else self.packageImport->select(pi | pi.importedPackage.visibleMembers()->includes(element))-> collect(pi | pi.importedPackage.getNamesOfMember(element))&#xA; endif&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="element" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+ </eOperations>
+ <eOperations name="membersAreDistinguishable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Boolean query membersAreDistinguishable() determines whether all of the namespace's members are distinguishable within it.&#xD;&#xA;result = self.member->forAll( memb |&#xA;self.member->excluding(memb)->forAll(other |&#xA;memb.isDistinguishableFrom(other, self)))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="importMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = self.excludeCollisions(imps)->select(imp | self.ownedMember->forAll(mem |&#xA;mem.imp.isDistinguishableFrom(mem, self)))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
+ </eOperations>
+ <eOperations name="excludeCollisions" ordered="false" upperBound="-1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query excludeCollisions() excludes from a set of PackageableElements any that would not be distinguishable from each other in this namespace.&#xD;&#xA;result = imps->reject(imp1 | imps.exists(imp2 | not imp1.isDistinguishableFrom(imp2, self)))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="imps" ordered="false" upperBound="-1" eType="#//PackageableElement"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elementImport" ordered="false"
+ upperBound="-1" eType="#//ElementImport" containment="true" resolveProxies="false"
+ eOpposite="#//ElementImport/importingNamespace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the ElementImports owned by the Namespace."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packageImport" ordered="false"
+ upperBound="-1" eType="#//PackageImport" containment="true" resolveProxies="false"
+ eOpposite="#//PackageImport/importingNamespace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the PackageImports owned by the Namespace."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRule" ordered="false"
+ upperBound="-1" eType="#//Constraint" containment="true" resolveProxies="false"
+ eOpposite="#//Constraint/context">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a set of Constraints owned by this Namespace."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
+ upperBound="-1" eType="#//NamedElement" changeable="false" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property of Abstractions::Namespaces::Namespace.&#xD;&#xA;A collection of NamedElements identifiable within the Namespace, either by being owned or by being introduced by importing or inheritance."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importedMember" ordered="false"
+ upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the PackageableElements that are members of this Namespace as a result of either PackageImports or ElementImports."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/member"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedMember" ordered="false"
+ upperBound="-1" eType="#//NamedElement" changeable="false" transient="true"
+ derived="true" resolveProxies="false" eOpposite="#//NamedElement/namespace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property of Abstractions::Namespaces::Namespace.&#xD;&#xA;A collection of NamedElements owned by the Namespace."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/member #//Element/ownedElement"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ElementImport" eSuperTypes="#//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="visibility_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The visibility of an ElementImport is either public or private.&#xD;&#xA;self.visibility = #public or self.visibility = #private"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="visibility_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The visibility of an ElementImport is either public or private.&#xD;&#xA;self.visibility = #public or self.visibility = #private"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="imported_element_is_public" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An importedElement has either public visibility or no visibility at all.&#xD;&#xA;self.importedElement.visibility.notEmpty() implies self.importedElement.visibility = #public"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="getName" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query getName() returns the name under which the imported PackageableElement will be known in the importing namespace.&#xD;&#xA;result = if self.alias->notEmpty() then&#xA; self.alias&#xA;else&#xA; self.importedElement.name&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+ lowerBound="1" eType="#//VisibilityKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importedElement" ordered="false"
+ lowerBound="1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the PackageableElement whose name is to be added to a Namespace."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
+ lowerBound="1" eType="#//Namespace" transient="true" eOpposite="#//Namespace/elementImport">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the Namespace that imports a PackageableElement from another Package."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A package import is defined as a directed relationship that identifies a package whose members are to be imported by a namespace."/>
+ </eAnnotations>
+ <eOperations name="public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The visibility of a PackageImport is either public or private.&#xD;&#xA;self.visibility = #public or self.visibility = #private"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
+ lowerBound="1" eType="#//VisibilityKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importedPackage" ordered="false"
+ lowerBound="1" eType="#//Package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the Package whose members are imported into a Namespace."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importingNamespace" ordered="false"
+ lowerBound="1" eType="#//Namespace" transient="true" eOpposite="#//Namespace/packageImport">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the Namespace that imports the members from a Package."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//Namespace #//PackageableElement #//TemplateableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;&#xA;In addition a package can be merged with other packages.&#xA;&#xA;&#xD;&#xA;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.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="mustBeOwned" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query mustBeOwned() indicates whether elements of this type must have an owner.&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Element/mustBeOwned"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="elements_public_or_private" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If an element that is owned by a package has visibility, it is public or private.&#xD;&#xA;self.ownedElements->forAll(e | e.visibility->notEmpty() implies e.visbility = #public or e.visibility = #private)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="visibleMembers" ordered="false" upperBound="-1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query visibleMembers() defines which members of a Package can be accessed outside it.&#xD;&#xA;result = member->select( m | self.makesVisible(m))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="makesVisible" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;self.member->includes(el)&#xD;&#xA;result = (ownedMember->includes(el)) or&#xA;(elementImport->select(ei|ei.importedElement = #public)->collect(ei|ei.importedElement)->includes(el)) or&#xA;(packageImport->select(pi|pi.visibility = #public)->collect(pi|pi.importedPackage.member->includes(el))->notEmpty())"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="el" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packageMerge" ordered="false"
+ upperBound="-1" eType="#//PackageMerge" containment="true" resolveProxies="false"
+ eOpposite="#//PackageMerge/receivingPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the PackageMerges that are owned by this Package."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
+ upperBound="-1" eType="#//PackageableElement" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the packageable elements that are owned by this Package."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedType" ordered="false"
+ upperBound="-1" eType="#//Type" volatile="true" transient="true" derived="true"
+ resolveProxies="false" eOpposite="#//Type/package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the packaged elements that are Types."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Package/packagedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestedPackage" ordered="false"
+ upperBound="-1" eType="#//Package" volatile="true" transient="true" derived="true"
+ resolveProxies="false" eOpposite="#//Package/nestingPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the packaged elements that are Packages."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Package/packagedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestingPackage" ordered="false"
+ eType="#//Package" volatile="true" transient="true" derived="true" resolveProxies="false"
+ eOpposite="#//Package/nestedPackage">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning package of a package.&#xD;&#xA;References the Package that owns this Package."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="appliedProfile" ordered="false"
+ upperBound="-1" eType="#//ProfileApplication" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the ProfileApplications that indicate which profiles have been applied to the Package."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/packageImport"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PackageMerge" eSuperTypes="#//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xD;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mergedPackage" ordered="false"
+ lowerBound="1" eType="#//Package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Package that is to be merged with the receiving package of the PackageMerge."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="receivingPackage" ordered="false"
+ lowerBound="1" eType="#//Package" transient="true" eOpposite="#//Package/packageMerge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Package that is being extended with the contents of the merged package of the PackageMerge."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A type serves as a constraint on the range of values represented by a typed element. Type is an abstract metaclass."/>
+ </eAnnotations>
+ <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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.&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="other" ordered="false" lowerBound="1" eType="#//Type"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
+ eType="#//Package" volatile="true" transient="true" derived="true" resolveProxies="false"
+ eOpposite="#//Package/ownedType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning package of a package.&#xD;&#xA;Specifies the owning package of this classifier, if any."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProfileApplication" eSuperTypes="#//PackageImport">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ProfileApplication is a kind of PackageImport that adds the capability to state that a Profile is applied to a Package."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="importedProfile" ordered="false"
+ lowerBound="1" eType="#//Profile">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Profiles that are applied to a Package through this ProfileApplication."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//PackageImport/importedPackage"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStrict" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies that the Profile filtering rules for the metaclasses of the referenced metamodel shall be strictly applied."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//Package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;A profile introduces several constraints, or restrictions, on ordinary metamodeling through the use of the metaclasses defined in this package.&#xA;&#xA;&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="metaclass_reference_not_specialized" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An element imported as a metaclassReference is not specialized or generalized in a Profile.&#xD;&#xA;self.metaclassReference.importedElement->&#xA;&#xA; select(c | c.oclIsKindOf(Classifier) and&#xA;&#xA; (c.generalization.namespace = self or&#xA;&#xA; (c.specialization.namespace = self) )->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="references_same_metamodel" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All elements imported either as metaclassReferences or through metamodelReferences are members of the same base reference metamodel.&#xD;&#xA;self.metamodelReference.importedPackage.elementImport.importedElement.allOwningPackages())->&#xA;&#xA; union(self.metaclassReference.importedElement.allOwningPackages() )->notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="allOwningPackages" ordered="false" upperBound="-1" eType="#//Package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query allOwningPackages() returns all the directly or indirectly owning packages.&#xD;&#xA;result = self.namespace->select(p | p.oclIsKindOf(Package))->union(p.allOwningPackages())"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedStereotype" ordered="false"
+ upperBound="-1" eType="#//Stereotype" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Stereotypes that are owned by the Profile."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Package/packagedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaclassReference" ordered="false"
+ upperBound="-1" eType="#//ElementImport" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a metaclass that may be extended."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/elementImport"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metamodelReference" ordered="false"
+ upperBound="-1" eType="#//PackageImport" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a package containing (directly or indirectly) metaclasses that may be extended."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/packageImport"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Stereotype" eSuperTypes="#//Class">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="name_not_clash" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Stereotype names should not clash with keyword names for the extended model element.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="generalize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A Stereotype may only generalize or specialize another Stereotype.&#xD;&#xA;generalization.general->forAll(e |e.oclIsKindOf(Stereotype)) and generalization.specific->forAll(e | e.oclIsKindOf(Stereotype)) "/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="icon" ordered="false" upperBound="-1"
+ eType="#//Image">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//EncapsulatedClassifier #//BehavioredClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;Extends the metaclass Class with the capability to have an internal structure and ports.&#xD;&#xA;Class has derived association that indicates how it may be extended through one or more stereotypes."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
+ eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xD;&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Classifier/inherit"/>
+ <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false" eOpposite="#//Property/class_">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//StructuredClassifier/ownedAttribute"/>
+ <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+ </contents>
+ <contents xsi:type="ecore:EAttribute" name="isAbstract" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="True when a class is abstract.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Classifier/isAbstract"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="passive_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A passive class may not own receptions.&#xD;&#xA;not self.isActive implies self.ownedReception.isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+ eType="#//Operation" containment="true" resolveProxies="false" eOpposite="#//Operation/class_">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operations owned by the class."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
+ eType="#//Classifier" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
+ upperBound="-1" eType="#//Class" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This gives the superclasses of a class."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Classifier/general"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isActive" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
+ upperBound="-1" eType="#//Reception" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Receptions that objects of this class are willing to accept."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember #//Classifier/feature"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
+ upperBound="-1" eType="#//Extension" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//Extension/metaclass.1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Extensions that specify additional properties of the metaclass. The property is derived from the extensions whose memberEnds are typed by the Class."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BehavioredClassifier" abstract="true"
+ eSuperTypes="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A BehavioredClassifier may have an interface realization.&#xD;&#xA;A classifier can have behavior specifications defined in its namespace. One of these may specify the behavior of the classifier itself."/>
+ </eAnnotations>
+ <eOperations name="class_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a behavior is classifier behavior, it does not have a specification.&#xD;&#xA;self.classifierBehavior.notEmpty() implies self.specification.isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedBehavior" ordered="false"
+ upperBound="-1" eType="#//Behavior" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References behavior specifications owned by a classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifierBehavior" ordered="false"
+ eType="#//Behavior" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A behavior specification that specifies the behavior of the classifier itself."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//BehavioredClassifier/ownedBehavior"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interfaceRealization" ordered="false"
+ upperBound="-1" eType="#//InterfaceRealization" containment="true" resolveProxies="false"
+ eOpposite="#//InterfaceRealization/implementingClassifier">
+ <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTrigger" ordered="false"
+ upperBound="-1" eType="#//Trigger" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References Trigger descriptions owned by a Classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//Namespace #//RedefinableElement #//Type #//TemplateableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;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.&#xD;&#xA;A classifier is a namespace whose members can include features. Classifier is an abstract metaclass.&#xA;&#xA;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.&#xA;&#xA;A classifier is a redefinable element, meaning that it is possible to redefine nested classifiers.&#xA;&#xA;&#xD;&#xA;A classifier can be parameterized, exposed as a formal template parameter, and specified as an actual parameter in a binding of a template."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isTemplate" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isTemplate() returns whether this templateable element is actually a template.&#xD;&#xA;result = oclAsType(TemplatableElement).isTemplate() or general->exists(g | g.isTemplate())"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//TemplateableElement/isTemplate"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+ eType="#//TemplateParameter" eOpposite="#//ClassifierTemplateParameter/%duplicates%/parameteredElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="no_cycles_in_generalization" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.&#xD;&#xA;not self.allParents()->includes(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="specialize_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A classifier may only specialize classifiers of a valid type.&#xD;&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="generalization_hierarchies" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Generalization hierarchies must be directed and acyclical. A classifier can not be both a transitively general and transitively specific classifier of the same classifier.&#xD;&#xA;not self.allParents()->includes(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="specialize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A classifier may only specialize classifiers of a valid type.&#xD;&#xA;self.parents()->forAll(c | self.maySpecializeType(c))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="maySpecializeType" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = self.oclIsKindOf(c.oclType)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
+ </eOperations>
+ <eOperations name="getGenerals" ordered="false" upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The general classifiers are the classifiers referenced by the generalization relationships.&#xD;&#xA;result = self.parents()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getInheritedMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The inheritedMember association is derived by inheriting the inheritable members of the parents.&#xD;&#xA;result = self.inherit(self.parents()->collect(p | p.inheritableMembers(self))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="allFeatures" ordered="false" upperBound="-1" eType="#//Feature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = member->select(oclIsKindOf(Feature))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="parents" ordered="false" upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query parents() gives all of the immediate ancestors of a generalized Classifier.&#xD;&#xA;result = generalization.general"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="inheritableMembers" ordered="false" upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;c.allParents()->includes(self)&#xD;&#xA;result = member->select(m | c.hasVisibilityOf(m))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="c" ordered="false" lowerBound="1" eType="#//Classifier"/>
+ </eOperations>
+ <eOperations name="hasVisibilityOf" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;self.allParents()->collect(c | c.member)->includes(n)&#xD;&#xA;result = if (self.inheritedMember->includes(n)) then (n.visibility &lt;> #private) else true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+ </eOperations>
+ <eOperations name="conformsTo" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = (self=other) or (self.allParents()->includes(other))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Type/conformsTo"/>
+ <eParameters name="other" ordered="false" lowerBound="1" eType="#//Classifier"/>
+ </eOperations>
+ <eOperations name="inherit" ordered="false" upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xD;&#xA;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.&#xD;&#xA;result = inhs"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
+ </eOperations>
+ <eOperations name="maySpecializeType" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = self.oclIsKindOf(c.oclType)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="allParents" ordered="false" upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query allParents() gives all of the direct and indirect ancestors of a generalized Classifier.&#xD;&#xA;result = self.parents()->union(self.parents()->collect(p | p.allParents())"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
+ upperBound="-1" eType="#//Generalization" containment="true" resolveProxies="false"
+ eOpposite="#//Generalization/specific">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the Generalization relationships for this Classifier. These Generalizations navigaten to more general classifiers in the generalization hierarchy."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="powertypeExtent" ordered="false"
+ upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/powertype">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the GeneralizationSet of which the associated Classifier is a power type."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="feature" ordered="false"
+ upperBound="-1" eType="#//Feature" changeable="false" transient="true" derived="true"
+ eOpposite="#//Feature/featuringClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;Specifies each feature defined in the classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/member"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inheritedMember" ordered="false"
+ upperBound="-1" eType="#//NamedElement" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies all elements inherited by this classifier from the general classifiers."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/member"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedClassifier" ordered="false"
+ upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Classifiers that are redefined by this Classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
+ upperBound="-1" eType="#//Classifier" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the general classifier in the Generalization relationship.&#xD;&#xA;Specifies the general Classifiers for this Classifier."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedUseCase" ordered="false"
+ upperBound="-1" eType="#//UseCase" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the use cases owned by this classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
+ upperBound="-1" eType="#//UseCase" eOpposite="#//UseCase/subject">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of use cases for which this Classifier is the subject."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="substitution" ordered="false"
+ upperBound="-1" eType="#//Substitution" containment="true" resolveProxies="false"
+ eOpposite="#//Substitution/substitutingClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the substitutions that are owned by this Classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" ordered="false"
+ upperBound="-1" eType="#//Property" changeable="false" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to all of the Properties that are direct (i.e. not inherited or imported) attributes of the classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="representation" ordered="false"
+ eType="#//CollaborationUse" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a collaboration use which indicates the collaboration that represents this classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/collaborationUse"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="collaborationUse" ordered="false"
+ upperBound="-1" eType="#//CollaborationUse" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the collaboration uses owned by the classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedSignature" ordered="false"
+ eType="#//RedefinableTemplateSignature" containment="true" resolveProxies="false"
+ eOpposite="#//RedefinableTemplateSignature/classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The optional template signature specifying the formal template parameters."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RedefinableElement" abstract="true"
+ eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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. &#xD;&#xA;A redefinable element is a named element that can be redefined in the context of a generalization. RedefinableElement is an abstract metaclass."/>
+ </eAnnotations>
+ <eOperations name="redefinition_context_valid" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;self.redefinedElement->forAll(e | self.isRedefinitionContextValid(e))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="redefinition_consistent" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A redefining element must be consistent with each redefined element.&#xD;&#xA;self.redefinedElement->forAll(re | re.isConsistentWith(self))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = self.redefinitionContext->exists(c | redefinable.redefinitionContext->exists(r | c.allParents()->includes(r)))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="redefinable" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </eOperations>
+ <eOperations name="isConsistentWith" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xA;&#xA;&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </eOperations>
+ <eOperations name="isRedefinitionContextValid" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = redefinitionContext->exists(c | c.allParents()->includes(redefined.redefinitionContext))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLeaf" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedElement" ordered="false"
+ upperBound="-1" eType="#//RedefinableElement" changeable="false" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The redefinable element that is being redefined by this element."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+ upperBound="-1" eType="#//Classifier" changeable="false" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the contexts that this element may be redefined from."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Generalization" eSuperTypes="#//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.&#xA;&#xA;A generalization can be designated as being a member of a particular generalization set.&#xA;&#xA;&#xD;&#xA;A generalization relates a specific classifier to a more general classifier, and is owned by the specific classifier.&#xA;&#xA;&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubstitutable" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="general" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the general classifier in the Generalization relationship."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generalizationSet" ordered="false"
+ upperBound="-1" eType="#//GeneralizationSet" eOpposite="#//GeneralizationSet/generalization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates a set in which instances of Generalization is considered members."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specific" ordered="false"
+ lowerBound="1" eType="#//Classifier" transient="true" eOpposite="#//Classifier/generalization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the specializing classifier in the Generalization relationship."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GeneralizationSet" eSuperTypes="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="generalization_same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Every Generalization associated with a particular GeneralizationSet must have the same general Classifier.&#xD;&#xA;generalization->collect(g | g.general)->asSet()->size() &lt;= 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="maps_to_generalization_set" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isCovering" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDisjoint" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="powertype" ordered="false"
+ eType="#//Classifier" eOpposite="#//Classifier/powertypeExtent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the Classifier that is defined as the power type for the associated GeneralizationSet."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generalization" ordered="false"
+ upperBound="-1" eType="#//Generalization" eOpposite="#//Generalization/generalizationSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the instances of Generalization which are members of a given GeneralizationSet."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Feature" abstract="true" eSuperTypes="#//RedefinableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A feature declares a behavioral or structural characteristic of instances of classifiers. Feature is an abstract metaclass."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether this feature characterizes individual instances classified by the classifier (false) or the classifier itself (true)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="featuringClassifier" ordered="false"
+ upperBound="-1" eType="#//Classifier" changeable="false" transient="true"
+ derived="true" eOpposite="#//Classifier/feature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding association in Abstractions.&#xD;&#xA;The Classifiers that have this Feature as a feature."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UseCase" eSuperTypes="#//BehavioredClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A UseCase must have a name.&#xD;&#xA;self.name -> notEmpty ()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="UseCases can only be involved in binary Associations.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_association_to_use_case" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="UseCases can not have Associations to UseCases specifying the same subject.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="cannot_include_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A use case cannot include use cases that directly or indirectly include it.&#xD;&#xA;not self.allIncludedUseCases()->includes(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="allIncludedUseCases" ordered="false" upperBound="-1" eType="#//UseCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query allIncludedUseCases() returns the transitive closure of all use cases (directly or indirectly) included by this use case.&#xD;&#xA;result = self.include->union(self.include->collect(in | in.allIncludedUseCases()))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="include" ordered="false"
+ upperBound="-1" eType="#//Include" containment="true" resolveProxies="false"
+ eOpposite="#//Include/includingCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Include relationships owned by this use case."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extend" ordered="false"
+ upperBound="-1" eType="#//Extend" containment="true" resolveProxies="false"
+ eOpposite="#//Extend/extension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Extend relationships owned by this use case."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extensionPoint" ordered="false"
+ upperBound="-1" eType="#//ExtensionPoint" containment="true" resolveProxies="false"
+ eOpposite="#//ExtensionPoint/useCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the ExtensionPoints owned by the use case."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subject" ordered="false"
+ upperBound="-1" eType="#//Classifier" eOpposite="#//Classifier/useCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Include" eSuperTypes="#//NamedElement #//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Note that the included use case is not optional, and is always required for the including use case to execute correctly.&#xA;&#xA;&#xA;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="addition" ordered="false"
+ lowerBound="1" eType="#//UseCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the use case that is to be included.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="includingCase" ordered="false"
+ lowerBound="1" eType="#//UseCase" transient="true" eOpposite="#//UseCase/include">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the use case which will include the addition and owns the include relationship."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Extend" eSuperTypes="#//NamedElement #//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;Note that the same extending use case can extend more than one use case. Furthermore, an extending use case may itself be extended.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="extension_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The extension points referenced by the extend relationship must belong to the use case that is being extended.&#xA;&#xA;&#xA;&#xA;&#xD;&#xA;extensionLocation->forAll (xp | extendedCase.extensionPoint->includes(xp))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extendedCase" ordered="false"
+ lowerBound="1" eType="#//UseCase">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the use case that is being extended."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
+ eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extensionLocation" lowerBound="1"
+ upperBound="-1" eType="#//ExtensionPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.)&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extension" ordered="false"
+ lowerBound="1" eType="#//UseCase" transient="true" eOpposite="#//UseCase/extend">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the use case that represents the extension and owns the extend relationship."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association &quot;xor&quot; 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.&#xA;&#xA;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.&#xD;&#xA;Constraint contains a ValueSpecification that specifies additional semantics for one or more elements. Certain kinds of constraints (such as an association &quot;xor&quot; 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.&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="not_apply_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A constraint cannot be applied to itself.&#xD;&#xA;not constrainedElement->includes(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="value_specification_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xD;&#xA;self.specification().booleanValue().isOclKindOf(Boolean)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="boolean_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The value specification for a constraint must evaluate to a Boolean value.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Evaluating the value specification for a constraint must not have side effects.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_applied_to_self" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A constraint cannot be applied to itself.&#xD;&#xA;not constrainedElement->includes(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="constrainedElement" upperBound="-1"
+ eType="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ordered set of Elements referenced by this Constraint."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied.&#xA;&#xA;&#xD;&#xA;A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
+ eType="#//Namespace" transient="true" eOpposite="#//Namespace/ownedRule">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the namespace that owns the NamedElement."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExtensionPoint" eSuperTypes="#//RedefinableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An ExtensionPoint must have a name.&#xD;&#xA;self.name->notEmpty ()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="useCase" ordered="false"
+ lowerBound="1" eType="#//UseCase" transient="true" eOpposite="#//UseCase/extensionPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the use case that owns this extension point."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Substitution" eSuperTypes="#//Realization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="substitutingClassifier"
+ ordered="false" lowerBound="1" eType="#//Classifier" transient="true" eOpposite="#//Classifier/substitution">
+ <eAnnotations source="subsets" references="#//Dependency/client #//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Realization" eSuperTypes="#//Abstraction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Abstraction" eSuperTypes="#//Dependency">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" ordered="false"
+ eType="#//OpaqueExpression" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OpaqueExpression" eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An opaque expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.&#xD;&#xA;An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.&#xA;&#xA;One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used.&#xA;&#xA;&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="language_body_size" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the language attribute is not empty, then the size of the body and language arrays must be the same.&#xD;&#xA;language->notEmpty() implies (body->size() = language->size())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="one_body_default_language" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If there is only one body then the size of the language is exactly 0 (corresponding to the default language).&#xD;&#xA;The there is only one body then the size of the language is exactly 0 (corresponding to the default language).&#xD;&#xA;language->isEmpty() implies (body->size() = 1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="only_return_result_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The behavior may only have return result parameters.&#xD;&#xA;self.behavior.notEmpty() implies&#xA;&#xA; self.behavior.ownedParameters->select(p | p.direction&lt;>#return)->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="one_return_result_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The behavior must have exactly one return result parameter.&#xD;&#xA;self.behavior.notEmpty() implies&#xA;&#xA; self.behavior.ownedParameter->select(p | p.direction=#return)->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="value" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query value() gives an integer value for an expression intended to produce one.&#xD;&#xA;self.isIntegral()&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isIntegral" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isIntegral() tells whether an expression is intended to produce an integer.&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isPositive" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isPositive() tells whether an integer expression has a positive value.&#xD;&#xA;self.isIntegral()&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNonNegative" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isNonNegative() tells whether an integer expression has a non-negative value.&#xD;&#xA;self.isIntegral()&#xD;&#xA;result = false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The text of the expression, possibly in multiple languages."/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ eType="#//Parameter" changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
+ eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the behavior of the opaque expression."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//ConnectableElement #//MultiplicityElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;Parameters are allowed to be treated as connectable elements.&#xD;&#xA;Parameters are extended in complete activities to add support for streaming, exceptions, and parameter sets."/>
+ </eAnnotations>
+ <eOperations name="connector_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A parameter may only be associated with a connector end within the context of a collaboration.&#xD;&#xA;self.end.notEmpty() implies self.collaboration.notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="stream_and_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A parameter cannot be a stream and exception at the same time.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_exception" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An input parameter cannot be an exception.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="reentrant_behaviors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Reentrant behaviors cannot have stream parameters.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="in_and_out" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only in and inout parameters may have a delete effect. Only out, inout, and return parameters may have a create effect.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSet" ordered="false"
+ upperBound="-1" eType="#//ParameterSet" eOpposite="#//ParameterSet/parameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameter sets containing the parameter. See ParameterSet."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
+ eType="#//Operation" changeable="false" volatile="true" transient="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Operation for which this is a formal parameter.&#xD;&#xA;References the Operation owning this parameter."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
+ lowerBound="1" eType="#//ParameterDirectionKind" defaultValueLiteral="in">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether a parameter is being sent into or out of a behavioral element."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a ValueSpecification that represents a value to be used when no argument is supplied for the Parameter."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isException" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether an output parameter may emit a value to the exclusion of the other outputs."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStream" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="effect" ordered="false"
+ lowerBound="1" eType="#//ParameterEffectKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the effect that the owner of the parameter has on values passed in or out of the parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MultiplicityElement" abstract="true"
+ eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="upper_gt_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A multiplicity must define at least one valid cardinality that is greater than zero.&#xD;&#xA;upperBound()->notEmpty() implies upperBound() > 0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="lower_ge_0" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The lower bound must be a non-negative integer literal.&#xD;&#xA;lowerBound()->notEmpty() implies lowerBound() >= 0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="upper_ge_lower" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The upper bound must be greater than or equal to the lower bound.&#xD;&#xA;(upperBound()->notEmpty() and lowerBound()->notEmpty()) implies upperBound() >= lowerBound()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="value_specification_no_side_effects" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then evaluating that specification must not have side effects.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="value_specification_constant" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a non-literal ValueSpecification is used for the lower or upper bound, then that specification must be a constant expression.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="getLower" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The derived lower attribute must equal the lowerBound.&#xD;&#xA;result = lowerBound()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getUpper" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The derived upper attribute must equal the upperBound.&#xD;&#xA;result = upperBound()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isMultivalued" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isMultivalued() checks whether this multiplicity has an upper bound greater than one.&#xD;&#xA;upperBound()->notEmpty()&#xD;&#xA;result = upperBound() > 1"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="includesCardinality" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query includesCardinality() checks whether the specified cardinality is valid for this multiplicity.&#xD;&#xA;upperBound()->notEmpty() and lowerBound()->notEmpty()&#xD;&#xA;result = (lowerBound() &lt;= C) and (upperBound() >= C)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="C" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+ </eOperations>
+ <eOperations name="includesMultiplicity" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query includesMultiplicity() checks whether this multiplicity includes all the cardinalities allowed by the specified multiplicity.&#xD;&#xA;self.upperBound()->notEmpty() and self.lowerBound()->notEmpty()&#xA;and M.upperBound()->notEmpty() and M.lowerBound()->notEmpty()&#xA;&#xD;&#xA;result = (self.lowerBound() &lt;= M.lowerBound()) and (self.upperBound() >= M.upperBound())"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="M" ordered="false" lowerBound="1" eType="#//MultiplicityElement"/>
+ </eOperations>
+ <eOperations name="lowerBound" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an integer.&#xD;&#xA;result = if lowerValue->isEmpty() then 1 else lowerValue.integerValue() endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="upperBound" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query upperBound() returns the upper bound of the multiplicity for a bounded multiplicity as an unlimited natural.&#xD;&#xA;result = if upperValue->isEmpty() then 1 else upperValue.unlimitedValue() endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered..&#xD;&#xA;For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of this element are sequentially ordered."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of this element are unique."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" volatile="true"
+ transient="true" defaultValueLiteral="1" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the upper bound of the multiplicity interval.&#xD;&#xA;Specifies the upper bound of the multiplicity interval, if it is expressed as an unlimited natural."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" volatile="true"
+ transient="true" defaultValueLiteral="1" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the lower bound of the multiplicity interval.&#xD;&#xA;Specifies the lower bound of the multiplicity interval, if it is expressed as an integer."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="upperValue" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specification of the upper bound for this multiplicity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lowerValue" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specification of the lower bound for this multiplicity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectableElement" abstract="true"
+ eSuperTypes="#//TypedElement #//ParameterableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;ConnectableElement is the connectable element of a ConnectableElementTemplateParameter.&#xA;&#xA;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. &#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+ eType="#//TemplateParameter" eOpposite="#//ConnectableElementTemplateParameter/%duplicates%/parameteredElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ConnectableElementTemplateParameter for this ConnectableElement parameter."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="end" upperBound="-1" eType="#//ConnectorEnd"
+ eOpposite="#//ConnectorEnd/role">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Denotes a connector that attaches to this connectable element."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectorEnd" eSuperTypes="#//MultiplicityElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the connector end may not be more general than the multiplicity of the association typing the owning connector.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="part_with_port_empty" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a connector end is attached to a port of the containing classifier, partWithPort will be empty.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="role_and_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="self_part_with_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The property held in self.partWithPort must not be a Port.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="definingEnd" ordered="false"
+ eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="partWithPort" ordered="false"
+ eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates the role of the internal structure of a classifier with the port to which the connector end is attached."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" lowerBound="1"
+ eType="#//ConnectableElement" eOpposite="#//ConnectableElement/end">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Property" eSuperTypes="#//StructuralFeature #//ConnectableElement #//DeploymentTarget #//TemplateableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xD;&#xA;A property is a structural feature.&#xA;&#xA;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.&#xA;&#xA;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.&#xA;&#xA;&#xD;&#xA;A property represents a set of instances that are owned by a containing classifier instance.&#xD;&#xA;In the metamodel, Property is a specialization of DeploymentTarget.&#xD;&#xA;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.&#xA;&#xA;&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xD;&#xA;result = redefinee.oclIsKindOf(Property) and &#xA; let prop : Property = redefinee.oclAsType(Property) in &#xA; (prop.type.conformsTo(self.type) and &#xA; ((prop.lowerBound()->notEmpty() and self.lowerBound()->notEmpty()) implies prop.lowerBound() >= self.lowerBound()) and &#xA; ((prop.upperBound()->notEmpty() and self.upperBound()->notEmpty()) implies prop.lowerBound() &lt;= self.lowerBound()) and &#xA; (self.isDerived implies prop.isDerived) and&#xA; (self.isComposite implies prop.isComposite))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ <contents xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This redefines the corresponding attribute in Basic::Property and Abstractions::StructuralFeature.&#xD;&#xA;If true, the attribute may only be read, and not written."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//StructuralFeature/isReadOnly"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="multiplicity_of_composite" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A multiplicity of a composite aggregation must not have an upper bound greater than 1.&#xD;&#xA;A multiplicity on an aggregate end of a composite aggregation must not have an upper bound greater than 1.&#xD;&#xA;isComposite implies (upperBound()->isEmpty() or upperBound() &lt;= 1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="subsetting_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Subsetting may only occur when the context of the subsetting property conforms to the context of the subsetted property.&#xD;&#xA;self.subsettedProperty->notEmpty() implies&#xA; (self.subsettingContext()->notEmpty() and self.subsettingContext()->forAll (sc |&#xA; self.subsettedProperty->forAll(sp |&#xA; sp.subsettingContext()->exists(c | sc.conformsTo(c)))))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="navigable_property_redefinition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A navigable property can only be redefined or subsetted by a navigable property.&#xD;&#xA;(self.subsettedProperty->exists(sp | sp.isNavigable()) implies self.isNavigable())&#xA; and (self.redefinedProperty->exists(rp | rp.isNavigable()) implies self.isNavigable())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="subsetting_rules" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A subsetting property may strengthen the type of the subsetted property, and its upper bound may be less.&#xD;&#xA;self.subsettedProperty->forAll(sp |&#xA; self.type.conformsTo(sp.type) and&#xA; ((self.upperBound()->notEmpty() and sp.upperBound()->notEmpty()) implies&#xA; self.upperBound()&lt;=sp.upperBound() ))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="navigable_readonly" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only a navigable property can be marked as readOnly.&#xD;&#xA;isReadOnly implies isNavigable()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="derived_union_is_derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A derived union is derived.&#xD;&#xA;isDerivedUnion implies isDerived"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="derived_union_is_read_only" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A derived union is read only.&#xD;&#xA;isDerivedUnion implies isReadOnly"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="binding_to_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A binding of a property template parameter representing an attribute must be to an attribute.&#xD;&#xA;(isAttribute(self) and (templateParameterSubstitution->notEmpty())&#xA;&#xA; implies (templateParameterSubstitution->forAll(ts | isAttribute(ts.formal)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="isAttribute" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isAttribute() is true if the Property is defined as an attribute of some classifier.&#xD;&#xA;result = Classifier.allInstances->exists(c | c.attribute->includes(p))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="p" ordered="false" lowerBound="1" eType="#//Property"/>
+ </eOperations>
+ <eOperations name="getOpposite" ordered="false" lowerBound="1" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = if owningAssociation->isEmpty() and association.memberEnd->size() = 2&#xA; then&#xA; let otherEnd = (association.memberEnd - self)->any() in&#xA; if otherEnd.owningAssociation->isEmpty() then otherEnd else Set{} endif&#xA; else Set {}&#xA; endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The value of isComposite is true only if aggregation is composite.&#xD;&#xA;result = (self.aggregation = #composite)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="subsettingContext" ordered="false" upperBound="-1" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = if association->notEmpty()&#xA;then association.endType-type&#xA;else if classifier->notEmpty() then Set{classifier} else Set{} endif&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isNavigable" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isNavigable indicates whether it is possible to navigate across the property.&#xD;&#xA;The query isNavigable() indicates whether it is possible to navigate across the property.&#xD;&#xA;result = not classifier->isEmpty() or association.owningAssociation.navigableOwnedEnd->includes(self)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+ eType="#//DataType" transient="true" eOpposite="#//DataType/ownedAttribute">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The DataType that owns this Operation.&#xD;&#xA;The DataType that owns this Property.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If isDerived is true, the value of the attribute is derived from information elsewhere.&#xD;&#xA;Specifies whether the Property is derived, i.e., whether its value or values can be computed from other information."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerivedUnion" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether the property is derived as the union of all of the properties that are constrained to subset it."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a String that represents a value to be used when no argument is supplied for the Property.&#xD;&#xA;A String that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="aggregation" ordered="false"
+ lowerBound="1" eType="#//AggregationKind" defaultValueLiteral="none">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the kind of aggregation that applies to the Property."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ volatile="true" transient="true" defaultValueLiteral="false" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If isComposite is true, the object containing the attribute is a container for the object or value contained in the attribute.&#xD;&#xA;This is a derived value, indicating whether the aggregation of the Property is composite or not."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="class_" ordered="false"
+ eType="#//Class" changeable="false" volatile="true" transient="true" resolveProxies="false">
+ <eAnnotations source="subsets" references="#//NamedElement/namespace #//Feature/featuringClassifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedProperty" ordered="false"
+ upperBound="-1" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the properties that are redefined by this property."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningAssociation" ordered="false"
+ eType="#//Association" transient="true" eOpposite="#//Association/ownedEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the owning association of this property, if any.&#xD;&#xA;References the owning association of this property."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Property/association #//NamedElement/namespace #//Feature/featuringClassifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
+ eType="#//Association" eOpposite="#//Association/memberEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the association of which this property is a member, if any."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A ValueSpecification that is evaluated to give a default value for the Property when an object of the owning Classifier is instantiated."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" ordered="false"
+ eType="#//Property" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In the case where the property is one navigable end of a binary association with both ends navigable, this gives the other end."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subsettedProperty" ordered="false"
+ upperBound="-1" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the properties of which this property is constrained to be a subset."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false" eOpposite="#//Property/associationEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An optional list of ordered qualifier attributes for the end. If the list is empty, then the Association is not qualified."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="associationEnd" ordered="false"
+ eType="#//Property" transient="true" eOpposite="#//Property/qualifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the optional association end that owns a qualifier attribute."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DeploymentTarget" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In the metamodel, DeploymentTarget is an abstract metaclass that is a specialization of NamedElement. A DeploymentTarget owns a set of Deployments."/>
+ </eAnnotations>
+ <eOperations name="getDeployedElements" ordered="false" upperBound="-1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="result = ((self.deployment->collect(deployedArtifact))->collect(manifestation))->collect(utilizedElement)"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
+ upperBound="-1" eType="#//Deployment" containment="true" resolveProxies="false"
+ eOpposite="#//Deployment/location">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of Deployments for a DeploymentTarget."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement #//NamedElement/clientDependency"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deployedElement" ordered="false"
+ upperBound="-1" eType="#//PackageableElement" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of elements that are manifested in an Artifact that is involved in Deployment to a DeploymentTarget."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Deployment" eSuperTypes="#//Dependency">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In the metamodel, Deployment is a subtype of Dependency.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deployedArtifact" ordered="false"
+ upperBound="-1" eType="#//DeployedArtifact">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Artifacts that are deployed onto a Node. This association specializes the supplier association."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Dependency/supplier #//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" ordered="false"
+ upperBound="-1" eType="#//DeploymentSpecification" containment="true" resolveProxies="false"
+ eOpposite="#//DeploymentSpecification/deployment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specification of properties that parameterize the deployment and execution of one or more Artifacts. This association is specialized from the ownedMember association."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="location" ordered="false"
+ lowerBound="1" eType="#//DeploymentTarget" transient="true" eOpposite="#//DeploymentTarget/deployment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The DeployedTarget which is the target of a Deployment."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Dependency/client"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DeployedArtifact" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DeploymentSpecification" eSuperTypes="#//Artifact">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="deployed_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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).&#xD;&#xA;self.deployment->forAll (d | d.location.deployedElements->forAll (de |&#xA;&#xA; de.oclIsKindOf(Component)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The DeploymentTarget of a DeploymentSpecification is a kind of ExecutionEnvironment.&#xD;&#xA;result = self.deployment->forAll (d | d.location..oclIsKindOf(ExecutionEnvironment))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="deploymentLocation" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The location where an Artifact is deployed onto a Node. This is typically a 'directory' or 'memory address'."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="executionLocation" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The location where a component Artifact executes. This may be a local or remote location."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deployment" ordered="false"
+ eType="#//Deployment" transient="true" eOpposite="#//Deployment/configuration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The deployment with which the DeploymentSpecification is associated."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Artifact" eSuperTypes="#//Classifier #//DeployedArtifact">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="fileName" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A concrete name that is used to refer to the Artifact in a physical context. Example: file system name, universal resource locator."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestedArtifact" ordered="false"
+ upperBound="-1" eType="#//Artifact" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Artifacts that are defined (nested) within the Artifact.&#xA;&#xA;The association is a specialization of the ownedMember association from Namespace to NamedElement.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="manifestation" ordered="false"
+ upperBound="-1" eType="#//Manifestation" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/clientDependency #//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+ eType="#//Operation" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Operations defined for the Artifact. The association is a specialization of the ownedMember association."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The attributes or association ends defined for the Artifact.&#xA;&#xA;The association is a specialization of the ownedMember association.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Manifestation" eSuperTypes="#//Abstraction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In the metamodel, a Manifestation is a subtype of Abstraction. A Manifestation is owned by an Artifact."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="utilizedElement" ordered="false"
+ lowerBound="1" eType="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The model element that is utilized in the manifestation in an Artifact."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target #//Dependency/supplier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Operation" eSuperTypes="#//BehavioralFeature #//ParameterableElement #//TemplateableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;An expression contains language-specific text strings used to describe a value or values, and an optional specification of the languages.&#xA;&#xA;One predefined language for specifying expressions is OCL. Natural language or programming languages may also be used.&#xA;&#xA;&#xD;&#xA;An operation is a behavioral feature of a classifier that specifies the name, type, parameters, and constraints for invoking an associated behavior.&#xD;&#xA;An operation may invoke both the execution of method behaviors as well as other behavioral responses.&#xD;&#xA;Operation specializes TemplateableElement in order to support specification of template operations and bound operations."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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()'.&#xD;&#xA;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. &#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xD;&#xA;result = (redefinee.oclIsKindOf(Operation) and&#xA;let op: Operation = redefinee.oclAsType(Operation) in&#xA;self.ownedParameter.size() = op.ownedParameter.size() and&#xA;forAll(i | op.ownedParameter[i].type.conformsTo(self.ownedParameter[i].type))&#xA;)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+ eType="#//Parameter" containment="true" resolveProxies="false" eOpposite="#//Parameter/operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xD;&#xA;Specifies the parameters owned by this Operation."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//BehavioralFeature/ownedParameter"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="raisedException" ordered="false"
+ upperBound="-1" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this operation."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//BehavioralFeature/raisedException"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="templateParameter" ordered="false"
+ eType="#//TemplateParameter" eOpposite="#//OperationTemplateParameter/%duplicates%/parameteredElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template parameter that exposes this element as a formal parameter."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ParameterableElement/templateParameter"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="at_most_one_return" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An operation can have at most one return parameter; i.e., an owned parameter with the direction set to 'return'&#xD;&#xA;self.ownedParameter->select(par | par.direction = #return)->size() &lt;= 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="only_body_for_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A bodyCondition can only be specified for a query operation.&#xD;&#xA;bodyCondition->notEmpty() implies isQuery"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="isOrdered" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If this operation has a return parameter, isOrdered equals the value of isOrdered for that parameter. Otherwise isOrdered is false.&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isOrdered else false endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isUnique" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xD;&#xA;If this operation has a return parameter, isUnique equals the value of isUnique for that parameter. Otherwise isUnique is true.&#xA;&#xA;&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().isUnique else true endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="lowerBound" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xD;&#xA;If this operation has a return parameter, lower equals the value of lower for that parameter. Otherwise lower is not defined.&#xA;&#xA;&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().lower else Set{} endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="upperBound" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xD;&#xA;If this operation has a return parameter, upper equals the value of upper for that parameter. Otherwise upper is not defined.&#xA;&#xA;&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().upper else Set{} endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getType" ordered="false" lowerBound="1" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If this operation has a return parameter, type equals the value of type for that parameter. Otherwise type is not defined.&#xD;&#xA;result = if returnResult()->notEmpty() then returnResult()->any().type else Set{} endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="returnResult" ordered="false" upperBound="-1" eType="#//Parameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query returnResult() returns the set containing the return parameter of the Operation if one exists, otherwise, it returns an empty set&#xD;&#xA;result = ownedParameter->select (par | par.direction = #return)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isQuery" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged (isQuery=true) or whether side effects may occur (isQuery=false)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ volatile="true" transient="true" defaultValueLiteral="false" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies whether the return parameter is ordered or not, if present."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ volatile="true" transient="true" defaultValueLiteral="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies whether the return parameter is unique or not, if present."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" volatile="true"
+ transient="true" defaultValueLiteral="1" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies the lower multiplicity of the return parameter, if present."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" ordered="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" volatile="true"
+ transient="true" defaultValueLiteral="1" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies the upper multiplicity of the return parameter, if present."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="class_" ordered="false"
+ eType="#//Class" transient="true" eOpposite="#//Class/ownedOperation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The class that owns the operation.&#xD;&#xA;The class that owns this operation."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext #//NamedElement/namespace #//Feature/featuringClassifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="precondition" ordered="false"
+ upperBound="-1" eType="#//Constraint" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An optional set of Constraints on the state of the system when the Operation is invoked."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postcondition" ordered="false"
+ upperBound="-1" eType="#//Constraint" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An optional set of Constraints specifying the state of the system when the Operation is completed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedOperation" ordered="false"
+ upperBound="-1" eType="#//Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Operations that are redefined by this Operation."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" ordered="false"
+ eType="#//DataType" transient="true" eOpposite="#//DataType/ownedOperation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The DataType that owns this Operation.&#xD;&#xA;The DataType that owns this Property."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext #//NamedElement/namespace #//Feature/featuringClassifier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodyCondition" ordered="false"
+ eType="#//Constraint" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An optional Constraint on the result values of an invocation of this Operation."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedRule"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type"
+ volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the corresponding property from Basic to derive this information from the return result for this Operation.&#xD;&#xA;Specifies the return result of the operation, if present."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interface" ordered="false"
+ eType="#//Interface" transient="true" eOpposite="#//Interface/ownedOperation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Interface that owns this Operation."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeature" eSuperTypes="#//Namespace #//Feature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;A behavioral feature specifies that an instance of a classifier will respond to a designated request by invoking a behavior.&#xA;&#xA;BehavioralFeature is an abstract metaclass specializing Feature and Namespace. Kinds of behavioral aspects are modeled by subclasses of BehavioralFeature.&#xA;&#xA;&#xD;&#xA;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.&#xD;&#xA;The concept of BehavioralFeature is extended to own ParameterSets."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isDistinguishableFrom" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isDistinguishableFrom() determines whether two BehavioralFeatures may coexist in the same Namespace. It specifies that they have to have different signatures.&#xD;&#xA;result = if n.oclIsKindOf(BehavioralFeature)&#xA;then&#xA; if ns.getNamesOfMember(self)->intersection(ns.getNamesOfMember(n))->notEmpty()&#xA; then Set{}->including(self)->including(n)->isUnique(bf | bf.ownedParameter->collect(type))&#xA; else true&#xA; endif&#xA;else true&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//NamedElement/isDistinguishableFrom"/>
+ <eParameters name="n" ordered="false" lowerBound="1" eType="#//NamedElement"/>
+ <eParameters name="ns" ordered="false" lowerBound="1" eType="#//Namespace"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+ eType="#//Parameter" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the ordered set of formal parameters of this BehavioralFeature.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
+ upperBound="-1" eType="#//Behavior" eOpposite="#//Behavior/specification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="concurrency" ordered="false"
+ lowerBound="1" eType="#//CallConcurrencyKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="raisedException" ordered="false"
+ upperBound="-1" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Types representing exceptions that may be raised during an invocation of this feature.&#xD;&#xA;The signals that the behavioral feature raises as exceptions."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
+ upperBound="-1" eType="#//ParameterSet" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ParameterSets owned by this BehavioralFeature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Behavior" eSuperTypes="#//Class">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as &quot;invoking&quot; the behavior, an instantiated behavior is also called a behavior &quot;execution.&quot; 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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xD;&#xA;The concept of Behavior is extended to own ParameterSets."/>
+ </eAnnotations>
+ <eOperations name="parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameters of the behavior must match the parameters of the implemented behavioral feature.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="feature_of_context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="must_realize" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="most_one_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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).&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReentrant" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the behavior can be invoked while it is still executing from a previous invocation."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedBehavior" ordered="false"
+ upperBound="-1" eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameter" upperBound="-1"
+ eType="#//Parameter" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
+ eType="#//BehavioredClassifier" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedParameterSet" ordered="false"
+ upperBound="-1" eType="#//ParameterSet" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ParameterSets owned by this Behavior."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+ eType="#//BehavioralFeature" eOpposite="#//BehavioralFeature/method">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ParameterSet" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An parameter set acts as a complete set of inputs and outputs to a behavior, exclusive of other parameter sets on the behavior."/>
+ </eAnnotations>
+ <eOperations name="same_parameterized_entity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="two_parameter_sets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Two parameter sets cannot have exactly the same set of parameters.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Parameter" eOpposite="#//Parameter/parameterSet">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Parameters in the parameter set."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="condition" ordered="false"
+ upperBound="-1" eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="CallConcurrencyKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="CallConcurrencyKind is an enumeration with the following literals:&#xA;&#xA;• 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.&#xA;&#xA;• 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.&#xA;&#xA;• concurrent Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently.&#xA;&#xA;&#xA;&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="sequential">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="guarded" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="concurrent" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Multiple invocations of a behavioral feature may occur simultaneously to one instance and all of them may proceed concurrently."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataType" eSuperTypes="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xD;&#xA;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.&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="inherit" ordered="false" upperBound="-1"
+ eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The inherit operation is overridden to exclude redefined properties.&#xD;&#xA;result = inhs->excluding(inh | ownedMember->select(oclIsKindOf(RedefinableElement))->select(redefinedElement->includes(inh)))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Classifier/inherit"/>
+ <eParameters name="inhs" ordered="false" upperBound="-1" eType="#//NamedElement"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false" eOpposite="#//Property/datatype">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Attributes owned by the DataType."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+ eType="#//Operation" containment="true" resolveProxies="false" eOpposite="#//Operation/datatype">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Operations owned by the DataType."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;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.&#xA;&#xA;&#xD;&#xA;Adds the capability for interfaces to include receptions (in addition to operations).&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The visibility of all features owned by an interface must be public.&#xD;&#xA;self.feature->forAll(f | f.visibility = #public)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The attributes (i.e. the properties) owned by the class."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestedClassifier" upperBound="-1"
+ eType="#//Classifier" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References all the Classifiers that are defined (nested) within the Class."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedInterface" ordered="false"
+ upperBound="-1" eType="#//Interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References all the Interfaces redefined by this Interface."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedReception" ordered="false"
+ upperBound="-1" eType="#//Reception" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Receptions that objects providing this interface are willing to accept."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
+ eType="#//ProtocolStateMachine" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a protocol state machine specifying the legal sequences of the invocation of the behavioral features described in the interface."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOperation" upperBound="-1"
+ eType="#//Operation" containment="true" resolveProxies="false" eOpposite="#//Operation/interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operations owned by the class."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Reception" eSuperTypes="#//BehavioralFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="not_query" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A Reception can not be a query.&#xD;&#xA;not self.isQuery"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+ eType="#//Signal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The signal that this reception handles."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Signal" eSuperTypes="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The attributes owned by the signal."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/attribute #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProtocolStateMachine" eSuperTypes="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A protocol state machine must only have a classifier context, not a behavioral feature context.&#xD;&#xA;(not context->isEmpty( )) and specification->isEmpty()"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//StateMachine/classifier_context"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="protocol_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All transitions of a protocol state machine must be protocol transitions. (transitions as extended by the ProtocolStateMachines package)&#xD;&#xA;region->forAll(r | r.transition->forAll(t | t.oclIsTypeOf(ProtocolTransition)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="entry_exit_do" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The states of a protocol state machine cannot have entry, exit, or do activity actions.&#xD;&#xA;region->forAll(r | r.subvertex->forAll(v | v.oclIsKindOf(State) implies&#xA;(v.entry->isEmpty() and v.exit->isEmpty() and v.doActivity->isEmpty())))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="deep_or_shallow_history" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Protocol state machines cannot have deep or shallow history pseudostates.&#xD;&#xA;region->forAll (r | r.subvertex->forAll (v | v.oclIsKindOf(Psuedostate) implies&#xA;((v.kind &lt;> #deepHistory) and (v.kind &lt;> #shallowHistory)))))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="ports_connected" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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).&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="conformance" ordered="false"
+ upperBound="-1" eType="#//ProtocolConformance" containment="true" resolveProxies="false"
+ eOpposite="#//ProtocolConformance/specificMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Conformance between protocol state machines."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateMachine" eSuperTypes="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A state machine owns one or more regions, which in turn own vertices and transitions.&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isRedefinitionContextValid" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid.1"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="classifier_context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier context of a state machine cannot be an interface.&#xD;&#xA;context->notEmpty() implies not context.oclIsKindOf(Interface)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="context_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The context classifier of the method state machine of a behavioral feature must be the classifier that owns the behavioral feature.&#xD;&#xA;specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="connection_points" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The connection points of a state machine are pseudostates of kind entry point or exit point.&#xD;&#xA;conectionPoint->forAll (c | c.kind = #entryPoint or c.kind = #exitPoint)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="method" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A state machine as the method for a behavioral feature cannot have entry/exit connection points.&#xD;&#xA;specification->notEmpty() implies connectionPoint->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="LCA" ordered="false" lowerBound="1" eType="#//Namespace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
+ <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
+ </eOperations>
+ <eOperations name="ancestor" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query ancestor(s1, s2) checks whether s2 is an ancestor state of state s1. context StateMachine::ancestor (s1 : State, s2 : State) : Boolean&#xA;&#xA;&#xD;&#xA;result = if (s2 = s1) then&#xA;true&#xA;else if (s1.container->isEmpty) then&#xA;true&#xA;else if (s2.container->isEmpty) then&#xA;false&#xA;else (ancestor (s1, s2.container))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="s1" ordered="false" lowerBound="1" eType="#//State"/>
+ <eParameters name="s2" ordered="false" lowerBound="1" eType="#//State"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Region" containment="true" resolveProxies="false"
+ eOpposite="#//Region/stateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The regions owned directly by the state machine."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
+ upperBound="-1" eType="#//Pseudostate" containment="true" resolveProxies="false"
+ eOpposite="#//Pseudostate/stateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The connection points defined for this state machine. They represent the interface of the state machine when used as part of submachine state."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extendedStateMachine" ordered="false"
+ eType="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The state machines of which this is an extension."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Region" eSuperTypes="#//Namespace #//RedefinableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A region is an orthogonal part of either a composite state or a state machine. It contains states and transitions."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isRedefinitionContextValid" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid.1"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+ upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A region can have at most one initial vertex&#xD;&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #initial)->size() &lt;= 1&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="deep_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A region can have at most one deep history vertex&#xD;&#xA;self.subvertex->select (v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #deepHistory)->size() &lt;= 1&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="shallow_history_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A region can have at most one shallow history vertex&#xD;&#xA;self.subvertex->select(v | v.oclIsKindOf(Pseudostate))->&#xA;select(p : Pseudostate | p.kind = #shallowHistory)->size() &lt;= 1&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a Region is owned by a StateMachine, then it cannot also be owned by a State and vice versa.&#xD;&#xA;(stateMachine->notEmpty() implies state->isEmpty()) and (state->notEmpty() implies stateMachine->isEmpty())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The redefinition context of a region is the nearest containing statemachine&#xD;&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation containingStateMachine() returns the sate machine in which this Region is defined&#xD;&#xA;result = if stateMachine->isEmpty() &#xA;then&#xA;state.containingStateMachine()&#xA;else&#xA;stateMachine&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subvertex" ordered="false"
+ upperBound="-1" eType="#//Vertex" containment="true" resolveProxies="false"
+ eOpposite="#//Vertex/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of vertices that are owned by this region."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transition" ordered="false"
+ upperBound="-1" eType="#//Transition" containment="true" resolveProxies="false"
+ eOpposite="#//Transition/container">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of transitions owned by the region. Note that internal transitions are owned by a region, but applies to the source state."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+ eType="#//State" transient="true" eOpposite="#//State/region">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The State that owns the Region. If a Region is owned by a State, then it cannot also be owned by a StateMachine."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extendedRegion" ordered="false"
+ eType="#//Region">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The region of which this region is an extension."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
+ eType="#//StateMachine" transient="true" eOpposite="#//StateMachine/region">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The StateMachine that owns the Region. If a Region is owned by a StateMachine, then it cannot also be owned by a State."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Vertex" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="containingStatemachine" ordered="false" lowerBound="1" eType="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation containingStatemachine() returns the state machine in which this Vertex is defined&#xD;&#xA;result = if not container->isEmpty()&#xA;then&#xA;-- the container is a region&#xA;container.containingStateMachine()&#xA;else if (oclIsKindOf(Pseudostate)) then&#xA;-- entry or exit point?&#xA;if (kind = #entryPoint) or (kind = #exitPoint) then&#xA;stateMachine&#xA;else if (oclIsKindOf(ConnectionPointReference)) then&#xA;state.containingStateMachine() -- no other valid cases possible&#xA;endif&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
+ upperBound="-1" eType="#//Transition" eOpposite="#//Transition/source">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the transitions departing from this vertex."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
+ upperBound="-1" eType="#//Transition" eOpposite="#//Transition/target">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the transitions entering this vertex."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
+ eType="#//Region" transient="true" eOpposite="#//Region/subvertex">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The region that contains this vertex."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Transition" eSuperTypes="#//RedefinableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = (redefinee.oclIsKindOf(Transition) and&#xA;&#xA; let trans: Transition = redefinee.oclAsType(Transition) in&#xA;&#xA; (source() = trans.source() and trigger() = tran.trigger())&#xD;&#xA;redefinee.isRedefinitionContextValid(self)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+ upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="fork_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A fork segment must not have guards or triggers.&#xD;&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (guard->isEmpty() and trigger->isEmpty())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="join_segment_guards" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A join segment must not have guards or triggers.&#xD;&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (guard->isEmpty() and trigger->isEmpty())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="fork_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A fork segment must always target a state.&#xD;&#xA;(source.oclIsKindOf(Pseudostate) and source.kind = #fork) implies (target.oclIsKindOf(State))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="join_segment_state" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A join segment must always originate from a state.&#xD;&#xA;(target.oclIsKindOf(Pseudostate) and target.kind = #join) implies (source.oclIsKindOf(State))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="outgoing_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Transitions outgoing pseudostates may not have a trigger.&#xD;&#xA;source.oclIsKindOf(Pseudostate) and&#xA;((source.kind &lt;> #junction) and (source.kind &lt;> #join) and (source.kind &lt;> #initial)) implies trigger->isEmpty()&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="initial_transition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An initial transition at the topmost level (region of a statemachine) either has no trigger or it has a trigger with the stereotype “create”.&#xD;&#xA;self.source.oclIsKindOf(Pseudostate) implies&#xA;(self.source.oclAsType(Pseudostate).kind = #initial) implies&#xA;(self.source.container = self.stateMachine.top) implies&#xA;((self.trigger->isEmpty) or&#xA;(self.trigger.stereotype.name = 'create'))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="signatures_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The redefinition context of a transition is the nearest containing statemachine.&#xD;&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="containingStateMachine" ordered="false" lowerBound="1" eType="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the transition either directly or transitively.&#xD;&#xA;result = container.containingStateMachine()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+ eType="#//TransitionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates the precise type of the transition."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="container" ordered="false"
+ lowerBound="1" eType="#//Region" transient="true" eOpposite="#//Region/transition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the region that owns this transition."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/incoming">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the target vertex that is reached when the transition is taken."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedTransition" ordered="false"
+ eType="#//Transition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The transition that is redefined by this transition."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
+ eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="effect" ordered="false"
+ eType="#//Behavior" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies an optional behavior to be performed when the transition fires."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
+ upperBound="-1" eType="#//Trigger" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the triggers that may fire the transition."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+ lowerBound="1" eType="#//Vertex" eOpposite="#//Vertex/outgoing">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the originating vertex (state or pseudostate) of the transition."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="TransitionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="TransitionKind is an enumeration of the following literal values:&#xA;• external&#xA;• internal&#xA;• local&#xA;&#xD;&#xA;kind=#local implies owner.source.isComposite&#xD;&#xA;kind=#external implies owner.source.isComposite"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="state_is_local state_is_external"/>
+ </eAnnotations>
+ <eLiterals name="internal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="local" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="external" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="kind=external implies that the transition, if triggered, will exit the composite (source) state."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Trigger" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;A trigger specification may be qualified by the port on which the event occurred."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
+ lowerBound="1" eType="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The event that causes the trigger."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="port" ordered="false" upperBound="-1"
+ eType="#//Port">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Event" abstract="true" eSuperTypes="#//PackageableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An event is the specification of some occurrence that may potentially trigger effects by an object."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Port" eSuperTypes="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xD;&#xA;Port is defined as a specialization of the general Port, adding an association to a protocol state machine."/>
+ </eAnnotations>
+ <eOperations name="required_interfaces" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The required interfaces of a port must be provided by elements to which the port is connected.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="port_aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Port.aggregation must be composite.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="port_destroyed" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="When a port is destroyed, all connectors attached to this port will be destroyed also.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="default_value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A defaultValue for port cannot be specified when the type of the Port is an Interface&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isBehavior" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isService" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
+ upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedPort" ordered="false"
+ upperBound="-1" eType="#//Port">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
+ upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protocol" ordered="false"
+ eType="#//ProtocolStateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References an optional protocol state machine which describes valid interactions at this interaction point."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="State" eSuperTypes="#//Namespace #//RedefinableElement #//Vertex">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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:&#xA;&#xA;o Simple state,&#xA;&#xA;o composite state, and&#xA;&#xA;o submachine state.&#xA;&#xA;A composite state is either a simple composite state (with just one region) or an orthogonal state (with more than one region).&#xA;&#xA;&#xA;&#xA;Simple state&#xA;&#xA;A simple state is a state that does not have substates, i.e. it has no regions and it has no submachine state machine.&#xA;&#xA;&#xA;&#xA;Composite state&#xA;&#xA;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. &#xA;&#xA;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. &#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;Semantic variation point (default entry rule)&#xA;&#xA;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. &#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;Submachine state&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;Transitions in the containing state machine can have entry/exit points of the inserted state machine as targets/sources.&#xA;&#xA;&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isRedefinitionContextValid" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isRedefinitionContextValid.1"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="containingStateMachine" ordered="false"
+ lowerBound="1" eType="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query containingStateMachine() returns the state machine that contains the state either directly or transitively.&#xD;&#xA;result = container.containingStateMachine()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Vertex/containingStatemachine"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="redefinitionContext" ordered="false"
+ upperBound="-1" eType="#//Classifier" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the classifier in which context this element may be redefined."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/redefinitionContext"/>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="There have to be at least two regions in an orthogonal composite state.&#xD;&#xA;(self.isOrthogonal) implies&#xA;(self.region->size >= 2)&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="submachine_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only submachine states can have connection point references.&#xD;&#xA;isSubmachineState implies connection->notEmpty ( )"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="destinations_or_sources_of_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="submachine_or_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A state is not allowed to have both a submachine and regions.&#xD;&#xA;isComposite implies not isSubmachineState"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="composite_states" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only composite states can have entry or exit pseudostates defined.&#xD;&#xA;connectionPoint->notEmpty() implies isComoposite"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="entry_or_exit" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only entry or exit pseudostates can serve as connection points.&#xD;&#xA;connectionPoint->forAll(cp|cp.kind = #entry or cp.kind = #exit)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="isSimple" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A simple state is a state without any regions.&#xD;&#xA;result = region.isEmpty()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isComposite" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A composite state is a state with at least one region.&#xD;&#xA;result = region.notEmpty()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isOrthogonal" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An orthogonal state is a composite state with at least 2 regions&#xD;&#xA;result = (region->size () > 1)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isSubmachineState" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only submachine states can have a reference statemachine.&#xD;&#xA;result = submachine.notEmpty()"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="redefinitionContext" ordered="false" lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The redefinition context of a state is the nearest containing statemachine.&#xD;&#xA;result = let sm = containingStateMachine() in&#xA;if sm.context->isEmpty() or sm.general->notEmpty() then&#xA;sm&#xA;else&#xA;sm.context&#xA;endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isComposite" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A state with isComposite=true is said to be a composite state. A composite state is a state that contains at least one region."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrthogonal" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A state with isOrthogonal=true is said to be an orthogonal composite state. An orthogonal composite state contains two or more regions."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSimple" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSubmachineState" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A state with isSubmachineState=true is said to be a submachine state. Such a state refers to a state machine (submachine)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="submachine" ordered="false"
+ eType="#//StateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The state machine that is to be inserted in place of the (submachine) state."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connection" ordered="false"
+ upperBound="-1" eType="#//ConnectionPointReference" containment="true" resolveProxies="false"
+ eOpposite="#//ConnectionPointReference/state">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connectionPoint" ordered="false"
+ upperBound="-1" eType="#//Pseudostate" containment="true" resolveProxies="false"
+ eOpposite="#//Pseudostate/state">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedState" ordered="false"
+ eType="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The state of which this state is a redefinition."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stateInvariant" ordered="false"
+ eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
+ eType="#//Behavior" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" eType="#//Behavior"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="doActivity" ordered="false"
+ eType="#//Behavior" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="deferrableTrigger" ordered="false"
+ upperBound="-1" eType="#//Trigger" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="region" ordered="false"
+ upperBound="-1" eType="#//Region" containment="true" resolveProxies="false"
+ eOpposite="#//Region/state">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The regions owned directly by the state."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectionPointReference" eSuperTypes="#//Vertex">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="entry_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The entry Pseudostates must be Pseudostates with kind entryPoint.&#xD;&#xA;entry->notEmpty() implies entry->forAll(e | e.kind = #entryPoint)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="exit_pseudostates" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The exit Pseudostates must be Pseudostates with kind exitPoint.&#xD;&#xA;exit->notEmpty() implies exit->forAll(e | e.kind = #exitPoint)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="entry" ordered="false"
+ upperBound="-1" eType="#//Pseudostate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The entryPoint kind pseudo states corresponding to this connection point."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exit" ordered="false" upperBound="-1"
+ eType="#//Pseudostate">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The exitPoints kind pseudo states corresponding to this connection point."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+ eType="#//State" transient="true" eOpposite="#//State/connection">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The State in which the connection point refreshens are defined."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Pseudostate" eSuperTypes="#//Vertex">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="initial_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An initial vertex can have at most one outgoing transition.&#xD;&#xA;(self.kind = #initial) implies (self.outgoing->size &lt;= 1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="history_vertices" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="History vertices can have at most one outgoing transition.&#xD;&#xA;((self.kind = #deepHistory) or (self.kind = #shallowHistory)) implies&#xA;(self.outgoing->size &lt;= 1)&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="join_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In a complete statemachine, a join vertex must have at least two incoming transitions and exactly one outgoing transition.&#xD;&#xA;(self.kind = #join) implies&#xA;((self.outgoing->size = 1) and (self.incoming->size >= 2))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="transitions_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All transitions incoming a join vertex must originate in different regions of an orthogonal state.&#xD;&#xA;(self.kind = #join) implies&#xA; self.incoming->forAll (t1, t2 | t1&lt;>t2 implies&#xA; (self.stateMachine.LCA(t1.source, t2.source).container.isOrthogonal))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="fork_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In a complete statemachine, a fork vertex must have at least two outgoing transitions and exactly one incoming transition.&#xD;&#xA;(self.kind = #fork) implies&#xA;((self.incoming->size = 1) and (self.outgoing->size >= 2))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="transitions_outgoing" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All transitions outgoing a fork vertex must target states in different regions of an orthogonal state.&#xD;&#xA;(self.kind = #fork) implies&#xA; self.outgoing->forAll (t1, t2 | t1&lt;>t2 implies&#xA; (self.stateMachine.LCA(t1.target, t2.target).container.isOrthogonal))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="junction_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In a complete statemachine, a junction vertex must have at least one incoming and one outgoing transition.&#xD;&#xA;(self.kind = #junction) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="choice_vertex" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In a complete statemachine, a choice vertex must have at least one incoming and one outgoing transition.&#xD;&#xA;(self.kind = #choice) implies&#xA;((self.incoming->size >= 1) and (self.outgoing->size >= 1))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="outgoing_from_initial" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The outgoing transition from and initial vertex may have a behavior, but not a trigger or a guard.&#xD;&#xA;(self.kind = #initial) implies (self.outgoing.guard->isEmpty()&#xA;&#xA; and self.outgoing.trigger->isEmpty())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
+ eType="#//PseudostateKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines the precise type of the Pseudostate and can be one of: entryPoint, exitPoint, initial, deepHistory, shallowHistory, join, fork, junction, terminate or choice."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stateMachine" ordered="false"
+ eType="#//StateMachine" transient="true" eOpposite="#//StateMachine/connectionPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The StateMachine in which this Pseudostate is defined. This only applies to Pseudostates of the kind entryPoint or exitPoint."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="state" ordered="false"
+ eType="#//State" transient="true" eOpposite="#//State/connectionPoint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The State that owns the pseudostate. If a Pseudostat is owned by a State, then it cannot also be owned by a StateMachine."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="PseudostateKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="PseudoStateKind is an enumeration of the following literal values:&#xA;• initial&#xA;• deepHistory&#xA;• shallowHistory&#xA;• join&#xA;• fork&#xA;• junction&#xA;• choice&#xA;• entryPoint&#xA;• exitPoint&#xA;• terminate&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="initial">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="deepHistory" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="shallowHistory" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="join" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="fork" value="4">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Fork vertices serve to split an incoming transition into two or more transitions terminating on orthogonal target vertices&#xA;&#xA;(i.e. vertices in different regions of a composite state). The segments outgoing from a fork vertex must not have guards or triggers."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="junction" value="5">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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)."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="choice" value="6">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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)."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="entryPoint" value="7">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="exitPoint" value="8">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="terminate" value="9">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProtocolConformance" eSuperTypes="#//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Protocol state machines can be redefined into more specific protocol state machines, or into behavioral state machines.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generalMachine" ordered="false"
+ lowerBound="1" eType="#//ProtocolStateMachine">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the protocol state machine to which the specific state machine conforms."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specificMachine" ordered="false"
+ lowerBound="1" eType="#//ProtocolStateMachine" transient="true" eOpposite="#//ProtocolStateMachine/conformance">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the state machine which conforms to the general state machine."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OperationTemplateParameter" eSuperTypes="#//TemplateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="OperationTemplateParameter is a template parameter where the parametered element is an Operation."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+ lowerBound="1" eType="#//ParameterableElement" eOpposite="#//Operation/%duplicates%/templateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation for this template parameter."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StructuralFeature" abstract="true" eSuperTypes="#//Feature #//TypedElement #//MultiplicityElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;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.&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="States whether the feature's value may be modified by a client."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="AggregationKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="AggregationKind is an enumeration of the following literal values:&#xA;• none Indicates that the property has no aggregation.&#xA;• shared Indicates that the property has a shared aggregation.&#xA;• composite Indicates that the property is aggregated compositely, i.e., the composite object has&#xA;responsibility for the existence and storage of the composed objects (parts).&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="none">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that the property has no aggregation."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="shared" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that the property has a shared aggregation."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="composite" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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)."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//Classifier #//Relationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="specialized_end_number" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An association specializing another association has the same number of ends as the other association.&#xD;&#xA;self.parents()->forAll(p | p.memberEnd.size() = self.memberEnd.size())"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="specialized_end_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="binary_associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only binary associations can be aggregations.&#xD;&#xA;self.memberEnd->exists(aggregation &lt;> Aggregation::none) implies self.memberEnd->size() = 2"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Association ends of associations with more than two ends must be owned by the association.&#xD;&#xA;if memberEnd->size() > 2 then ownedEnd->includesAll(memberEnd)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="endType" upperBound="-1" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="endType is derived from the types of the member ends.&#xD;&#xA;result = self.memberEnd->collect(e | e.type)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDerived" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether the association is derived from other model elements such as other associations or constraints."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="endType" lowerBound="1"
+ upperBound="-1" eType="#//Type" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the classifiers that are used as types of the ends of the association."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Relationship/relatedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="memberEnd" lowerBound="2"
+ upperBound="-1" eType="#//Property" eOpposite="#//Property/association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Each end represents participation of instances of the classifier connected to the end in links of the association. This is an ordered association.&#xD;&#xA;Each end represents participation of instances of the classifier connected to the end in links of the association."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/member"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="navigableOwnedEnd" ordered="false"
+ upperBound="-1" eType="#//Property" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The navigable ends that are owned by the association itself."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Association/ownedEnd"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false" eOpposite="#//Property/owningAssociation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ends that are owned by the association itself. This is an ordered association.&#xD;&#xA;The ends that are owned by the association itself."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Association/memberEnd #//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConnectableElementTemplateParameter"
+ eSuperTypes="#//TemplateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ConnectableElementTemplateParameter is a template parameter where the parametered element is a ConnectableElement."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+ lowerBound="1" eType="#//ParameterableElement" eOpposite="#//ConnectableElement/%duplicates%/templateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ConnectableElement for this template parameter."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ParameterDirectionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ParameterDirectionKind is an enumeration of the following literal values:&#xA;&#xA; - in Indicates that parameter values are passed into the behavioral element by the caller.&#xA;&#xA; - 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.&#xA;&#xA; - out Indicates that parameter values are passed from a behavioral element out to the caller.&#xA;&#xA; - return Indicates that parameter values are passed as return values from a behavioral element back to the caller.&#xA;&#xA;&#xD;&#xA;ParameterDirectionKind is an enumeration of the following literal values:&#xA;• in Indicates that parameter values are passed into the behavioral element by the caller.&#xA;• 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.&#xA;• out Indicates that parameter values are passed from a behavioral element out to the caller.&#xA;• return Indicates that parameter values are passed as return values from a behavioral element back to the caller.&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="in">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that parameter values are passed into the behavioral element by the caller."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="inout" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="out" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that parameter values are passed from a behavioral element out to the caller."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="return" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that parameter values are passed as return values from a behavioral element back to the caller."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ParameterEffectKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The datatype ParameterEffectKind is an enumeration that indicates the effect of a behavior on values passed in or out of its parameters."/>
+ </eAnnotations>
+ <eLiterals name="create"/>
+ <eLiterals name="read" value="1"/>
+ <eLiterals name="update" value="2"/>
+ <eLiterals name="delete" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CollaborationUse" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="client_elements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="every_role" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Every role in the collaboration is bound within the collaboration use to a connectable element within the classifier or operation.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="connectors" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The connectors in the classifier connect according to the connectors in the collaboration&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
+ eType="#//Collaboration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="roleBinding" ordered="false"
+ upperBound="-1" eType="#//Dependency" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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).&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Collaboration" eSuperTypes="#//BehavioredClassifier #//StructuredClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="collaborationRole" ordered="false"
+ upperBound="-1" eType="#//ConnectableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References connectable elements (possibly owned by other classifiers) which represent roles that instances may play in this collaboration."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//StructuredClassifier/role"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StructuredClassifier" abstract="true"
+ eSuperTypes="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="multiplicities" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicities on connected elements must be consistent.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedAttribute" upperBound="-1"
+ eType="#//Property" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the properties owned by the classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//StructuredClassifier/role #//Namespace/ownedMember #//Classifier/attribute"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="part" ordered="false" upperBound="-1"
+ eType="#//Property" changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the properties specifying instances that the classifier owns by composition. This association is derived, selecting those owned properties where isComposite is true."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="role" ordered="false" upperBound="-1"
+ eType="#//ConnectableElement" changeable="false" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the roles that instances may play in this classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/member"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnector" ordered="false"
+ upperBound="-1" eType="#//Connector" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the connectors owned by the classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Classifier/feature #//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//Feature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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'."/>
+ </eAnnotations>
+ <eOperations name="types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The connectable elements attached to the ends of a connector must be compatible.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="roles" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="between_interfaces_ports" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="between_interface_port_implements" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="between_interface_port_signature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="union_signature_compatible" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="assembly_connector" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An assembly connector must only be defined from a required Interface or Ports to a provided Interface or Port.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An optional association that specifies the link corresponding to this connector."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedConnector" ordered="false"
+ upperBound="-1" eType="#//Connector">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="end" lowerBound="2" upperBound="-1"
+ eType="#//ConnectorEnd" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" eType="#//ConnectorKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates the kind of connector."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+ upperBound="-1" eType="#//Behavior"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ConnectorKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ConnectorKind is an enumeration of the following literal values:&#xA;• assembly Indicates that the connector is an assembly connector.&#xA;• delegation Indicates that the connector is a delegation connector.&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="assembly">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that the connector is an assembly connector."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="delegation" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates that the connector is a delegation connector."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RedefinableTemplateSignature" eSuperTypes="#//RedefinableElement #//TemplateSignature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isConsistentWith" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;redefinee.isRedefinitionContextValid(self)&#xD;&#xA;result = redefinee.oclIsKindOf(RedefineableTemplateSignature)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//RedefinableElement/isConsistentWith"/>
+ <eParameters name="redefinee" ordered="false" lowerBound="1" eType="#//RedefinableElement"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="inherited_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The inherited parameters are the parameters of the extended template signature.&#xD;&#xA;if extendedSignature->isEmpty() then Set{} else extendedSignature.parameter endif"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="extendedSignature" ordered="false"
+ upperBound="-1" eType="#//RedefinableTemplateSignature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The template signature that is extended by this template signature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inheritedParameter" ordered="false"
+ upperBound="-1" eType="#//TemplateParameter" changeable="false" volatile="true"
+ transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The formal template parameters of the extendedSignature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//TemplateSignature/parameter"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
+ lowerBound="1" eType="#//Classifier" transient="true" eOpposite="#//Classifier/ownedSignature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier that owns this template signature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinitionContext"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClassifierTemplateParameter" eSuperTypes="#//TemplateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ClassifierTemplateParameter is a template parameter where the parametered element is a Classifier in its capacity of being a kind of ParameterableElement."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="parameteredElement" ordered="false"
+ lowerBound="1" eType="#//ParameterableElement" eOpposite="#//Classifier/%duplicates%/templateParameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameterable classifier for this template parameter."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//TemplateParameter/parameteredElement"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="constraining_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If &quot;allowSubstitutable&quot; is true, then there must be a constrainingClassifier.&#xD;&#xA;allowSubstitutable implies constrainingClassifier->notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="allowSubstitutable" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constrains the required relationship between an actual parameter and the parameteredElement for this formal parameter."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultClassifier" ordered="false"
+ eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="constrainingClassifier"
+ ordered="false" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InterfaceRealization" eSuperTypes="#//Realization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="contract" ordered="false"
+ lowerBound="1" eType="#//Interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Interface specifying the conformance contract."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target #//Dependency/supplier"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="implementingClassifier"
+ ordered="false" lowerBound="1" eType="#//BehavioredClassifier" transient="true"
+ eOpposite="#//BehavioredClassifier/interfaceRealization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the BehavioredClassifier that owns this Interfacerealization (i.e., the classifier that realizes the Interface to which it points)."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Dependency/client #//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EncapsulatedClassifier" abstract="true"
+ eSuperTypes="#//StructuredClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Extends a classifier with the ability to own ports as specific and type checked interaction points."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPort" ordered="false"
+ upperBound="-1" eType="#//Port" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a set of ports that an encapsulated classifier owns."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//StructuredClassifier/ownedAttribute"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Extension" eSuperTypes="#//Association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="ownedEnd" upperBound="-1" eType="#//ExtensionEnd"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the end of the extension that is typed by a Stereotype."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Association/ownedEnd"/>
+ <eAnnotations source="subsets" references="#//Association/ownedEnd"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="non_owned_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The non-owned end of an Extension is typed by a Class.&#xD;&#xA;metaclassEnd()->notEmpty() and metaclass()->oclIsKindOf(Class)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="is_binary" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An Extension is binary, i.e., it has only two memberEnds.&#xD;&#xA;memberEnd->size() = 2"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="metaclassEnd" ordered="false" lowerBound="1" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query metaclassEnd() returns the Property that is typed by a metaclass (as opposed to a stereotype).&#xD;&#xA;result = memberEnd->reject(ownedEnd)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="metaclass" ordered="false" lowerBound="1" eType="#//Class">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query metaclass() returns the metaclass that is being extended (as opposed to the extending stereotype).&#xD;&#xA;result = metaclassEnd().type"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="isRequired" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isRequired() is true if the owned end has a multiplicity with the lower bound of 1.&#xD;&#xA;result = (ownedEnd->lowerBound() = 1)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ changeable="false" volatile="true" transient="true" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="metaclass" ordered="false"
+ lowerBound="1" eType="#//Class" changeable="false" volatile="true" transient="true"
+ derived="true" eOpposite="#//Class/extension">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Class that is extended through an Extension. The property is derived from the type of the memberEnd that is not the ownedEnd."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExtensionEnd" eSuperTypes="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="lowerBound" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query lowerBound() returns the lower bound of the multiplicity as an Integer. This is a redefinition of the default&#xA;&#xA;lower bound, which normally, for MultiplicityElements, evaluates to 1 if empty.&#xD;&#xA;result = lowerBound = if lowerValue->isEmpty() then 0 else lowerValue->IntegerValue() endif"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//MultiplicityElement/lowerBound"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="type" ordered="false" eType="#//Type">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the type of the ExtensionEnd. Note that this association restricts the possible types of an ExtensionEnd to only be Stereotypes."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//TypedElement/type"/>
+ </contents>
+ <contents xsi:type="ecore:EAttribute" name="lower" ordered="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+ volatile="true" transient="true" defaultValueLiteral="0" derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This redefinition changes the default multiplicity of association ends, since model elements are usually extended by 0 or 1 instance of the extension stereotype."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//MultiplicityElement/lower"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of ExtensionEnd is 0..1 or 1.&#xD;&#xA;(self->lowerBound() = 0 or self->lowerBound() = 1) and self->upperBound() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="aggregation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The aggregation of an ExtensionEnd is composite.&#xD;&#xA;self.aggregation = #composite"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Image" abstract="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Image class provides the necessary information to display an Image in a diagram. Icons are typically handled through the Image class."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StringExpression" eSuperTypes="#//Expression #//TemplateableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="StringExpression is a specialization of the general Expression metaclass which adds the ability to contain sub-expressions and whose operands are exclusively LiteralStrings."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xD;&#xA;result = if subExpression->notEmpty()&#xA;then subExpression->iterate(se; stringValue = ‘| stringValue.concat(se.stringValue()))&#xA;else operand->iterate()(op; stringValue = ‘ | stringValue.concat(op.value))"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="operands" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All the operands of a StringExpression must be LiteralStrings&#xD;&#xA;operand->forAll (op | op.oclIsKindOf (LiteralString))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="subexpressions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a StringExpression has sub-expressions, it cannot have operands and vice versa (this avoids the problem of having to&#xA;define a collating sequence between operands and subexpressions).&#xA;&#xD;&#xA;if subExpression->notEmpty() then operand->isEmpty() else operand->notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subExpression" ordered="false"
+ upperBound="-1" eType="#//StringExpression" containment="true" resolveProxies="false"
+ eOpposite="#//StringExpression/owningExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The StringExpressions that constitute this StringExpression."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningExpression" ordered="false"
+ eType="#//StringExpression" transient="true" eOpposite="#//StringExpression/subExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The string expression of which this expression is a substring."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Expression" eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An expression is a structured tree of symbols that denotes a (possibly empty) set of values when evaluated in a context.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="symbol" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The symbol associated with the node in the expression tree."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operand" upperBound="-1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies a sequence of operands."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LiteralInteger" eSuperTypes="#//LiteralSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A literal integer contains an Integer-valued attribute."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="integerValue" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query integerValue() gives the value.&#xD;&#xA;result = value"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/integerValue"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specified Integer value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LiteralString" eSuperTypes="#//LiteralSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A literal string contains a String-valued attribute."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="stringValue" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query stringValue() gives the value.&#xD;&#xA;result = value"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/stringValue"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specified String value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LiteralBoolean" eSuperTypes="#//LiteralSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A literal boolean contains a Boolean-valued attribute."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="booleanValue" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query booleanValue() gives the value.&#xD;&#xA;result = value"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/booleanValue"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specified Boolean value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LiteralNull" eSuperTypes="#//LiteralSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A literal null is used to represent null, i.e., the absence of a value."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="isNull" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isNull() returns true.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/isNull"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Slot" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="owningInstance" ordered="false"
+ lowerBound="1" eType="#//InstanceSpecification" transient="true" eOpposite="#//InstanceSpecification/slot">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The instance specification that owns this slot."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="definingFeature" ordered="false"
+ lowerBound="1" eType="#//StructuralFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The structural feature that specifies the values that may be held by the slot."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" upperBound="-1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The value or values corresponding to the defining feature for the owning instance specification."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceSpecification" eSuperTypes="#//DeploymentTarget #//PackageableElement #//DeployedArtifact">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An instance specification specifies existence of an entity in a modeled system and completely or partially describes the entity.&#xA;&#xA;The description may include:&#xA;&#xA;&#xA;&#xA;- 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.&#xA;&#xA;- 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.&#xA;&#xA;- 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.&#xA;&#xA;- Specification of how to compute, derive or construct the instance (optional).&#xA;&#xA;&#xA;&#xA;InstanceSpecification is a concrete class.&#xA;&#xA;&#xD;&#xA;In the metamodel, InstanceSpecification is a specialization of DeploymentTarget and DeployedArtifact."/>
+ </eAnnotations>
+ <eOperations name="defining_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The defining feature of each slot is a structural feature (directly or inherited) of a classifier of the instance specification.&#xD;&#xA;slot->forAll(s | classifier->exists (c | c.allFeatures()->includes (s.definingFeature)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="One structural feature (including the same feature inherited from multiple classifiers) is the defining feature of at most one slot in an instance specification.&#xD;&#xA;classifier->forAll(c | (c.allFeatures()->forAll(f | slot->select(s | s.definingFeature = f)->size() &lt;= 1)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="deployment_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="deployment_artifact" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An InstanceSpecification can be a DeployedArtifact if it is the instance specification of an Artifact.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
+ upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier or classifiers of the represented instance. If multiple classifiers are specified, the instance is classified by all of them."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="specification" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A specification of how to compute, derive, or construct the instance."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="slot" ordered="false" upperBound="-1"
+ eType="#//Slot" containment="true" resolveProxies="false" eOpposite="#//Slot/owningInstance">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//DataType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Enumeration is a kind of data type, whose instances may be any of a number of predefined enumeration literals.&#xA;&#xA;It is possible to extend the set of applicable enumeration literals in other packages or profiles.&#xA;&#xA;&#xD;&#xA;Enumeration is a kind of data type, whose instances may be any of a number of user-defined enumeration literals.&#xA;&#xA;It is possible to extend the set of applicable enumeration literals in other packages or profiles.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="ownedLiteral" upperBound="-1"
+ eType="#//EnumerationLiteral" containment="true" resolveProxies="false" eOpposite="#//EnumerationLiteral/enumeration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ordered collection of literals for the enumeration.&#xD;&#xA;The ordered set of literals for this Enumeration."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EnumerationLiteral" eSuperTypes="#//InstanceSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An enumeration literal is a value of an enumeration.&#xD;&#xA;An enumeration literal is a user-defined data value for an enumeration."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="enumeration" ordered="false"
+ eType="#//Enumeration" transient="true" eOpposite="#//Enumeration/ownedLiteral">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The enumeration that this literal belongs to.&#xD;&#xA;The Enumeration that this EnumerationLiteral is a member of."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//DataType">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstanceValue" eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An instance value specifies the value modeled by an instance specification."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="instance" ordered="false"
+ lowerBound="1" eType="#//InstanceSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The instance that is the specified value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LiteralUnlimitedNatural" eSuperTypes="#//LiteralSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A literal unlimited natural contains a UnlimitedNatural-valued attribute."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="isComputable" ordered="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query isComputable() is redefined to be true.&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/isComputable"/>
+ </contents>
+ <contents xsi:type="ecore:EOperation" name="unlimitedValue" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The query unlimitedValue() gives the value.&#xD;&#xA;result = value"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ValueSpecification/unlimitedValue"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specified UnlimitedNatural value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OpaqueBehavior" eSuperTypes="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An behavior with implementation-specific semantics."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the behavior in one or more languages."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Languages the body strings use in the same order as the body strings."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FunctionBehavior" eSuperTypes="#//OpaqueBehavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A function behavior is an opaque behavior that does not access or modify any objects or other external data."/>
+ </eAnnotations>
+ <eOperations name="one_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A function behavior has at least one output parameter.&#xD;&#xA;self.ownedParameters->&#xA;&#xA; select(p | p.direction=#out or p.direction=#inout or p.direction=#return)->size() >= 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="types_of_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The types of parameters are all data types, which may not nest anything but other datatypes.&#xD;&#xA;def: hasAllDataTypeAttributes(d : DataType) : Boolean =&#xA;&#xA; d.ownedAttribute->forAll(a |&#xA;&#xA; a.type.oclIsTypeOf(DataType) and&#xA;&#xA; hasAllDataTypeAttributes(a.type))&#xA;&#xA;self.ownedParameters->forAll(p | p.type.notEmpty() and&#xA;&#xA; p.oclIsTypeOf(DataType) and hasAllDataTypeAttributes(p))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Actor" eSuperTypes="#//BehavioredClassifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;Since an actor is external to the subject, it is typically defined in the same classifier or package that incorporates the subject classifier.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="associations" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An actor can only have associations to use cases, components and classes. Furthermore these associations must be binary.&#xD;&#xA;self.ownedAttribute->forAll ( a |&#xA;(a.association->notEmpty()) implies&#xA;((a.association.memberEnd.size() = 2) and&#xA;(a.opposite.class.oclIsKindOf(UseCase) or&#xA;(a.opposite.class.oclIsKindOf(Class) and not a.opposite.class.oclIsKindOf(Behavior))))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="must_have_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An actor must have a name.&#xD;&#xA;name->notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Usage" eSuperTypes="#//Dependency">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Message" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="sending_receiving_message_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="signature_refer_to" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="signature_is_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="signature_is_signal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="arguments" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Arguments of a Message must only be:&#xA;i) attributes of the sending lifeline&#xA;ii) constants&#xA;iii) symbolic values (which are wildcard values representing any legal value)&#xA;iv) explicit parameters of the enclosing Interaction&#xA;v) attributes of the class owning the Interaction&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="cannot_cross_boundaries" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Messages cannot cross bounderies of CombinedFragments or their operands.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="occurrence_specifications" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the MessageEnds are both OccurrenceSpecifications then the connector must go between the Parts represented by the Lifelines of the two MessageEnds.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageKind" ordered="false"
+ lowerBound="1" eType="#//MessageKind" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The derived kind of the Message (complete, lost, found or unknown)"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="messageSort" ordered="false"
+ lowerBound="1" eType="#//MessageSort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The sort of communication reflected by the Message"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="receiveEvent" ordered="false"
+ eType="#//MessageEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Receiving of the Message"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="sendEvent" ordered="false"
+ eType="#//MessageEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Sending of the Message."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="connector" ordered="false"
+ eType="#//Connector">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Connector on which this Message is sent."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
+ lowerBound="1" eType="#//Interaction" transient="true" eOpposite="#//Interaction/message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The enclosing Interaction owning the Message"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The arguments of the Message"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signature" ordered="false"
+ eType="#//NamedElement" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MessageKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="MessageKind is an enumeration of the following values:&#xA;&#xA;- complete = sendEvent and receiveEvent are present&#xA;&#xA;- lost = sendEvent present and receiveEvent absent&#xA;&#xA;- found = sendEvent absent and receiveEvent present&#xA;&#xA;- unknown = sendEvent and receiveEvent absent (should not appear)"/>
+ </eAnnotations>
+ <eLiterals name="complete">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="sendEvent and receiveEvent are present"/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="lost" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="sendEvent present and receiveEvent absent"/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="found" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="sendEvent absent and receiveEvent present"/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="unknown" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="sendEvent and receiveEvent absent (should not appear)"/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="MessageSort">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="MessageSort is an enumeration of the following values:&#xA;• synchCall - the message was generated by a synchronous call to an operation&#xA;• asynchCall - the message was generated by an asynchronous call to an operation; i.e., a CallAction with “isSynchronous= false”&#xA;• asynchSignal -the message was generated by an asynchronous send action&#xA;"/>
+ </eAnnotations>
+ <eLiterals name="synchCall">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The message was generated by a synchronous call to an operation"/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="asynchCall" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The message was generated by an asynchronous call to an operation; i.e., a CallAction with “isSynchronous&#xA;= false”&#xA;"/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="asynchSignal" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The message was generated by an asynchronous send action"/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageEnd" abstract="true" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A MessageEnd is an abstract NamedElement that represents what can occur at the end of a Message."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
+ eType="#//Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a Message."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Interaction" eSuperTypes="#//Behavior #//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="lifeline" ordered="false"
+ upperBound="-1" eType="#//Lifeline" containment="true" resolveProxies="false"
+ eOpposite="#//Lifeline/interaction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the participants in this Interaction."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
+ eType="#//InteractionFragment" containment="true" resolveProxies="false" eOpposite="#//InteractionFragment/enclosingInteraction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ordered set of fragments in the Interaction."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
+ upperBound="-1" eType="#//Action" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Actions owned by the Interaction."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="formalGate" ordered="false"
+ upperBound="-1" eType="#//Gate" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the gates that form the message interface between this Interaction and any InteractionUses which reference it.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
+ upperBound="-1" eType="#//Message" containment="true" resolveProxies="false"
+ eOpposite="#//Message/interaction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Messages contained in this Interaction."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InteractionFragment" abstract="true"
+ eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="covered" ordered="false"
+ upperBound="-1" eType="#//Lifeline" eOpposite="#//Lifeline/coveredBy">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Lifelines that the InteractionFragment involves."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="generalOrdering" ordered="false"
+ upperBound="-1" eType="#//GeneralOrdering" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The general ordering relationships contained in this fragment."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="enclosingInteraction" ordered="false"
+ eType="#//Interaction" transient="true" eOpposite="#//Interaction/fragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Interaction enclosing this InteractionFragment."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="enclosingOperand" ordered="false"
+ eType="#//InteractionOperand" transient="true" eOpposite="#//InteractionOperand/fragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operand enclosing this InteractionFragment (they may nest recursively)"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Lifeline" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;If the selector is omitted this means that an arbitrary representative of the multivalued ConnectableElement is chosen.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="interaction_uses_share_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="selector_specified" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The selector for a Lifeline must only be specified if the referenced Part is multivalued.&#xD;&#xA;(self.selector->isEmpty() implies not self.represents.isMultivalued()) or&#xA;(not self.selector->isEmpty() implies self.represents.isMultivalued())&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier containing the referenced ConnectableElement must be the same classifier, or an ancestor, of the classifier that contains the interaction enclosing this lifeline.&#xD;&#xA;if (represents->notEmpty()) then&#xA;(if selector->notEmpty() then represents.isMultivalued() else not represents.isMultivalued())&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="represents" ordered="false"
+ eType="#//ConnectableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the ConnectableElement within the classifier that contains the enclosing interaction."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interaction" ordered="false"
+ lowerBound="1" eType="#//Interaction" transient="true" eOpposite="#//Interaction/lifeline">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Interaction enclosing this Lifeline."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//NamedElement/namespace"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="selector" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the referenced ConnectableElement is multivalued, then this specifies the specific individual part within that set."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decomposedAs" ordered="false"
+ eType="#//PartDecomposition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Interaction that represents the decomposition."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="coveredBy" ordered="false"
+ upperBound="-1" eType="#//InteractionFragment" eOpposite="#//InteractionFragment/covered"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PartDecomposition" eSuperTypes="#//InteractionUse">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="PartDecomposition is a description of the internal interactions of one Lifeline relative to an Interaction.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;A PartDecomposition is a specialization of InteractionUse. It associates with the ConnectableElement that it decomposes.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="parts_of_internal_structures" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="PartDecompositions apply only to Parts that are Parts of Internal Structures not to Parts of Collaborations.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="assume" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;i) CombinedFragment covering L are matched with an extra-global CombinedFragment in D&#xA;&#xA;ii) An InteractionUse covering L are matched with a global (i.e. covering all Lifelines) InteractionUse in D.&#xA;&#xA;iii) A plain OccurrenceSpecification on L is considered an actualGate that must be matched by a formalGate of D&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="commutativity_of_decomposition" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Assume that within Interaction X, Lifeline L is of class C and decomposed to D. Assume also that there is within X an&#xA;&#xA;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)&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InteractionUse" eSuperTypes="#//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="gates_match" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Actual Gates of the InteractionUse must match Formal Gates of the referred Interaction. Gates match when their names are equal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="all_lifelines" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The InteractionUse must cover all Lifelines of the enclosing Interaction which appear within the referred Interaction.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="arguments_correspond_to_parameters" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The arguments of the InteractionUse must correspond to parameters of the referred Interaction&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="arguments_are_constants" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The arguments must only be constants, parameters of the enclosing Interaction or attributes of the classifier owning the enclosing Interaction.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="refersTo" ordered="false"
+ lowerBound="1" eType="#//Interaction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the Interaction that defines its meaning"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="actualGate" ordered="false"
+ upperBound="-1" eType="#//Gate" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual gates of the InteractionUse"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
+ eType="#//Action" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The actual arguments of the Interaction"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Gate" eSuperTypes="#//MessageEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="messages_actual_gate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="messages_combined_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The message leading to/from an (expression) Gate within a CombinedFragment must correspond to the message leading from/to the CombinedFragment on its outside.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Action" eSuperTypes="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="output" upperBound="-1"
+ eType="#//OutputPin" changeable="false" transient="true" derived="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ordered set of output pins connected to the Action. The action places its results onto pins in this set."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="input" upperBound="-1"
+ eType="#//InputPin" changeable="false" transient="true" derived="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ordered set of input pins connected to the Action. These are among the total set of inputs."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
+ eType="#//Classifier" changeable="false" volatile="true" transient="true"
+ derived="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier that owns the behavior of which this action is a part."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="localPrecondition" ordered="false"
+ upperBound="-1" eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constraint that must be satisfied when execution is started."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="localPostcondition" ordered="false"
+ upperBound="-1" eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constraint that must be satisfied when executed is completed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExecutableNode" abstract="true" eSuperTypes="#//ActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An executable node is an abstract class for activity nodes that may be executed. It is used as an attachment point for exception handlers."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handler" ordered="false"
+ upperBound="-1" eType="#//ExceptionHandler" containment="true" resolveProxies="false"
+ eOpposite="#//ExceptionHandler/protectedNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A set of exception handlers that are examined if an uncaught exception propagates to the outer level of the executable node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActivityNode" abstract="true" eSuperTypes="#//RedefinableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xD;&#xA;An activity node is an abstract class for the steps of an activity. It covers executable nodes, control nodes, and object nodes."/>
+ </eAnnotations>
+ <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity nodes can only be owned by activities or groups.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="owned_structured_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity nodes may be owned by at most one structured node.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" ordered="false"
+ upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/source">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Edges that have the node as source."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
+ upperBound="-1" eType="#//ActivityGroup" changeable="false" transient="true"
+ derived="true" eOpposite="#//ActivityGroup/containedNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups containing the node. Multiplicity specialized to [0..1] for StructuredActivity-Group."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
+ upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/node">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Partitions containing the node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
+ eType="#//StructuredActivityNode" transient="true" eOpposite="#//StructuredActivityNode/node">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Structured activity node containing the node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
+ eType="#//Activity" transient="true" eOpposite="#//Activity/node">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity containing the node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" ordered="false"
+ upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/target">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Edges that have the node as target."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inInterruptibleRegion"
+ ordered="false" upperBound="-1" eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/node">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Interruptible regions containing the node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityNode/inGroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedNode" ordered="false"
+ upperBound="-1" eType="#//ActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Inherited nodes replaced by this node in a specialization of the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActivityEdge" eSuperTypes="#//RedefinableElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="source_and_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The source and target of an edge must be in the same activity as the edge.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity edges may be owned only by activities or groups.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="structured_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity edges may be owned by at most one structured node.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="activity" ordered="false"
+ eType="#//Activity" transient="true" eOpposite="#//Activity/edge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity containing the edge."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inGroup" ordered="false"
+ upperBound="-1" eType="#//ActivityGroup" changeable="false" transient="true"
+ derived="true" eOpposite="#//ActivityGroup/containedEdge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivityGroup.&#xD;&#xA;Groups containing the edge. Multiplicity specialized to [0..1] for StructuredActivity-Group."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inPartition" ordered="false"
+ upperBound="-1" eType="#//ActivityPartition" eOpposite="#//ActivityPartition/edge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Partitions containing the edge."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inStructuredNode" ordered="false"
+ eType="#//StructuredActivityNode" transient="true" eOpposite="#//StructuredActivityNode/edge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Structured activity node containing the edge."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityEdge/inGroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" eType="#//ActivityNode" eOpposite="#//ActivityNode/incoming">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Node to which tokens are put when they traverse the edge."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedEdge" ordered="false"
+ upperBound="-1" eType="#//ActivityEdge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Inherited edges replaced by this edge in a specialization of the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//RedefinableElement/redefinedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specification evaluated at runtime to determine if the edge can be traversed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="weight" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Number of tokens consumed from the source node on each traversal."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interrupts" ordered="false"
+ eType="#//InterruptibleActivityRegion" eOpposite="#//InterruptibleActivityRegion/interruptingEdge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Region that the edge can interrupt."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="source" ordered="false"
+ lowerBound="1" eType="#//ActivityNode" eOpposite="#//ActivityNode/outgoing">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Node from which tokens are taken when they traverse the edge."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Activity" eSuperTypes="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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. &#xA;&#xA;&#xA;&#xA;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:&#xA;&#xA;- occurrences of primitive functions, such as arithmetic functions.&#xA;&#xA;- invocations of behavior, such as activities.&#xA;&#xA;- communication actions, such as sending of signals.&#xA;&#xA;- manipulations of objects, such as reading or writing attributes or associations.&#xA;&#xA;&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="no_supergroups" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The groups of an activity have no supergroups.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="activity_parameter_node" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The nodes of the activity must include one ActivityParameterNode for each parameter.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="autonomous" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An activity cannot be autonomous and have a classifier or behavioral feature context at the same time.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReadOnly" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="partition" ordered="false"
+ lowerBound="1" eType="#//ActivityPartition" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Top-level partitions in the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Activity/group"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="group" ordered="false"
+ upperBound="-1" eType="#//ActivityGroup" containment="true" resolveProxies="false"
+ eOpposite="#//ActivityGroup/inActivity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Top-level groups in the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSingleExecution" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If true, all invocations of the activity are handled by the same execution."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="structuredNode" ordered="false"
+ upperBound="-1" eType="#//StructuredActivityNode" changeable="false" volatile="true"
+ transient="true" derived="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Top-level structured nodes in the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Activity/node #//Activity/group"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
+ upperBound="-1" eType="#//Variable" containment="true" resolveProxies="false"
+ eOpposite="#//Variable/activityScope">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Top-level variables in the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
+ eType="#//ActivityNode" containment="true" resolveProxies="false" eOpposite="#//ActivityNode/activity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Nodes coordinated by the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
+ eType="#//ActivityEdge" containment="true" resolveProxies="false" eOpposite="#//ActivityEdge/activity">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Edges expressing flow between nodes of the activity."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActivityPartition" eSuperTypes="#//NamedElement #//ActivityGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="is_dimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A partition with isDimension = true may not be contained by another partition.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="node_or_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="No node or edge of a partition may be in another partition in the same dimension.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="represents_part" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="represents_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="represents_part_and_is_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDimension" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the partition groups other partitions along a dimension."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isExternal" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the partition represents an entity to which the partitioning structure does not apply."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
+ eType="#//ActivityEdge" eOpposite="#//ActivityEdge/inPartition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Edges immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/containedEdge"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
+ eType="#//ActivityNode" eOpposite="#//ActivityNode/inPartition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Nodes immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subpartition" ordered="false"
+ upperBound="-1" eType="#//ActivityPartition" containment="true" resolveProxies="false"
+ eOpposite="#//ActivityPartition/superPartition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Partitions immediately contained in the partition. Specialized from Activity-Group::subgroup."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/subgroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superPartition" ordered="false"
+ eType="#//ActivityPartition" transient="true" eOpposite="#//ActivityPartition/subpartition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Partition immediately containing the partition."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/superGroup"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="represents" ordered="false"
+ eType="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An element constraining behaviors invoked by nodes in the partition."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActivityGroup" abstract="true" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity groups are a generic grouping construct for nodes and edges. Nodes and edges can belong to more than one group.&#xA;&#xA;They have no inherent semantics and can be used for various purposes. Subclasses of ActivityGroup may add semantics.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="nodes_and_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All nodes and edges of the group must be in the same activity as the group.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="No node or edge in a group may be contained by its subgroups or its containing groups, transitively.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="group_owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups may only be owned by activities or groups.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="subgroup" ordered="false"
+ upperBound="-1" eType="#//ActivityGroup" changeable="false" transient="true"
+ derived="true" resolveProxies="false" eOpposite="#//ActivityGroup/superGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Groups immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="superGroup" ordered="false"
+ eType="#//ActivityGroup" changeable="false" transient="true" derived="true"
+ eOpposite="#//ActivityGroup/subgroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Group immediately containing the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedNode" ordered="false"
+ upperBound="-1" eType="#//ActivityNode" changeable="false" transient="true"
+ derived="true" eOpposite="#//ActivityNode/inGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Nodes immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inActivity" ordered="false"
+ eType="#//Activity" transient="true" eOpposite="#//Activity/group">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity containing the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="containedEdge" ordered="false"
+ upperBound="-1" eType="#//ActivityEdge" changeable="false" transient="true"
+ derived="true" eOpposite="#//ActivityEdge/inGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Edges immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="union"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StructuredActivityNode" eSuperTypes="#//Action #//Namespace #//ActivityGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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 &quot;atomicity&quot;, 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.&#xA;&#xA;&#xD;&#xA;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.&#xA;&#xA;&#xA;&#xA;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 &quot;isolated,&quot; 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.&#xA;&#xA;&#xA;&#xA;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 &quot;atomicity&quot;, 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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="activity" ordered="false" eType="#//Activity"
+ volatile="true" transient="true" derived="true" resolveProxies="false" eOpposite="#//Activity/structuredNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity immediately containing the node."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//ActivityNode/activity #//ActivityGroup/inActivity"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The edges owned by a structured node must have source and target nodes in the structured node, and vice versa.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
+ upperBound="-1" eType="#//Variable" containment="true" resolveProxies="false"
+ eOpposite="#//Variable/scope">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A variable defined in the scope of the structured activity node. It has no value and may not be accessed"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
+ eType="#//ActivityNode" containment="true" resolveProxies="false" eOpposite="#//ActivityNode/inStructuredNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Nodes immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mustIsolate" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If true, then the actions in the node execute in isolation from actions outside the node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="edge" ordered="false" upperBound="-1"
+ eType="#//ActivityEdge" containment="true" resolveProxies="false" eOpposite="#//ActivityEdge/inStructuredNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Edges immediately contained in the structured node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/containedEdge"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//TypedElement #//MultiplicityElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;Any values contained by a variable must conform to the type of the variable and have cardinalities allowed by the multiplicity of the variable.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="owned" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A variable is owned by a StructuredNode or Activity, but not both.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="isAccessibleBy" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The isAccessibleBy() operation is not defined in standard UML. Implementations should define it to specify which actions can access a variable.&#xA;&#xA;&#xD;&#xA;result = true"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eParameters name="a" ordered="false" lowerBound="1" eType="#//Action"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="activityScope" ordered="false"
+ eType="#//Activity" transient="true" eOpposite="#//Activity/variable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An activity that owns the variable."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="scope" ordered="false"
+ eType="#//StructuredActivityNode" transient="true" eOpposite="#//StructuredActivityNode/variable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A structured activity node that owns the variable."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InterruptibleActivityRegion" eSuperTypes="#//ActivityGroup">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="interrupting_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="node" ordered="false" upperBound="-1"
+ eType="#//ActivityNode" eOpposite="#//ActivityNode/inInterruptibleRegion">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Nodes immediately contained in the group."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//ActivityGroup/containedNode"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="interruptingEdge" ordered="false"
+ upperBound="-1" eType="#//ActivityEdge" eOpposite="#//ActivityEdge/interrupts">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The edges leaving the region that will abort other tokens flowing in the region."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExceptionHandler" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="exception_body" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The exception handler and its input object node are not the source or target of any edge.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The result pins of the exception handler body must correspond in number and types to the result pins of the protected node.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="one_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The handler body has one input, and that input is the same as the exception input.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="edge_source_target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An edge that has a source in an exception handler structured node must have its target in the handler also, and vice versa.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="handlerBody" ordered="false"
+ lowerBound="1" eType="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A node that is executed if the handler satisfies an uncaught exception."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionInput" ordered="false"
+ lowerBound="1" eType="#//ObjectNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionType" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="protectedNode" ordered="false"
+ lowerBound="1" eType="#//ExecutableNode" transient="true" eOpposite="#//ExecutableNode/handler">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The node protected by the handler. The handler is examined if an exception propagates to the outside of the node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/owner"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectNode" abstract="true" eSuperTypes="#//ActivityNode #//TypedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;&#xA;Complete object nodes add support for token selection, limitation on the number of tokens, specifying the state required for tokens, and carrying control values.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="object_flow_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="All edges coming into or going out of object nodes must be object flow edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_unique" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Object nodes are not unique typed elements&#xD;&#xA;isUnique = false"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="selection_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If an object node has a selection behavior, then the ordering of the object node is ordered, and vice versa.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="input_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordering" ordered="false"
+ lowerBound="1" eType="#//ObjectNodeOrderingKind" defaultValueLiteral="FIFO">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether and how the tokens in the object node are ordered for selection to traverse edges outgoing from the object node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isControlType" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the type of the object node is to be treated as control."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="upperBound" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The maximum number of tokens allowed in the node. Objects cannot flow into the node if the upper bound is reached."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inState" ordered="false"
+ upperBound="-1" eType="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The required states of the object available at this point in the activity."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="selection" ordered="false"
+ eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selects tokens for outgoing edges."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ObjectNodeOrderingKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ObjectNodeOrderingKind is an enumeration indicating queuing order within a node."/>
+ </eAnnotations>
+ <eLiterals name="unordered"/>
+ <eLiterals name="ordered" value="1"/>
+ <eLiterals name="LIFO" value="2"/>
+ <eLiterals name="FIFO" value="3"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OutputPin" eSuperTypes="#//Pin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An output pin is a pin that holds output values produced by an action."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Pin" eSuperTypes="#//ObjectNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A pin is a typed element and multiplicity element that provides values to actions and accept result values from them.&#xD;&#xA;A pin is an object node for inputs and outputs to actions."/>
+ </eAnnotations>
+ <eOperations name="control_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Control pins have a control type&#xD;&#xA;isControl implies isControlType"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isControl" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the pins provide data to the actions, or just controls when it executes it."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InputPin" eSuperTypes="#//Pin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An input pin is a pin that holds input values to be consumed by an action."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="GeneralOrdering" eSuperTypes="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="before" ordered="false"
+ lowerBound="1" eType="#//OccurrenceSpecification" eOpposite="#//OccurrenceSpecification/toAfter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The OccurrenceSpecification referenced comes before the OccurrenceSpecification referenced by after."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="after" ordered="false"
+ lowerBound="1" eType="#//OccurrenceSpecification" eOpposite="#//OccurrenceSpecification/toBefore">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The OccurrenceSpecification referenced comes after the OccurrenceSpecification referenced by before."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OccurrenceSpecification" abstract="true"
+ eSuperTypes="#//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An OccurrenceSpecification is the basic semantic unit of Interactions. The sequences of occurrences specified by them are the meanings of Interactions.&#xA;&#xA;OccurrenceSpecifications are ordered along a Lifeline.&#xA;&#xA;The namespace of an OccurrenceSpecification is the Interaction in which it is contained.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="covered" ordered="false" upperBound="-1"
+ eType="#//Lifeline">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Lifeline on which the OccurrenceSpecification appears."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="toBefore" ordered="false"
+ upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/after">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur before this OccurrenceSpecification&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
+ lowerBound="1" eType="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References a specification of the occurring event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="toAfter" ordered="false"
+ upperBound="-1" eType="#//GeneralOrdering" eOpposite="#//GeneralOrdering/before">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the GeneralOrderings that specify EventOcurrences that must occur after this OccurrenceSpecification&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InteractionOperand" eSuperTypes="#//Namespace #//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An InteractionOperand is contained in a CombinedFragment. An InteractionOperand represents one operand of the expression given by the enclosing CombinedFragment. &#xA;&#xA;&#xA;&#xA;An InteractionOperand is an InteractionFragment with an optional guard expression. An InteractionOperand may be&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;InteractionOperand contains an ordered set of InteractionFragments.&#xA;&#xA;&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="guard_directly_prior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The guard must be placed directly prior to (above) the OccurrenceSpecification that will become the first OccurrenceSpecification within this InteractionOperand.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="guard_contain_references" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The guard must contain only references to values local to the Lifeline on which it resides, or values global to the whole Interaction.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="guard" ordered="false"
+ eType="#//InteractionConstraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Constraint of the operand."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fragment" upperBound="-1"
+ eType="#//InteractionFragment" containment="true" resolveProxies="false" eOpposite="#//InteractionFragment/enclosingOperand">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The fragments of the operand."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InteractionConstraint" eSuperTypes="#//Constraint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="dynamic_variables" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The dynamic variables that take part in the constraint must be owned by the ConnectableElement corresponding to the covered Lifeline.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="global_data" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The constraint may contain references to global data or write-once data.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="minint_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Minint/maxint can only be present if the InteractionConstraint is associated with the operand of a loop CombinedFragment.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="minint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If minint is specified, then the expression must evaluate to a non-negative integer.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If maxint is specified, then the expression must evaluate to a positive integer.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="maxint_greater_equal_minint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If maxint is specified, then minint must be specified and the evaluation of maxint must be >= the evaluation of minint&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="minint" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The minimum number of iterations of a loop"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="maxint" ordered="false"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The maximum number of iterations of a loop"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExecutionSpecification" abstract="true"
+ eSuperTypes="#//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="same_lifeline" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The startEvent and the finishEvent must be on the same Lifeline&#xD;&#xA;start.lifeline = finish.lifeline"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="start" ordered="false"
+ lowerBound="1" eType="#//ExecutionOccurrenceSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the OccurrenceSpecification that designates the start of the Action or Behavior"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="finish" ordered="false"
+ lowerBound="1" eType="#//ExecutionOccurrenceSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the OccurrenceSpecification that designates the finish of the Action or Behavior."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExecutionOccurrenceSpecification" eSuperTypes="#//OccurrenceSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An ExecutionOccurrenceSpecification represents moments in time at which actions or behaviors start or finish."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="event" ordered="false" lowerBound="1"
+ eType="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the event referenced to be restricted to an execution event."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//OccurrenceSpecification/event"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="execution" ordered="false"
+ lowerBound="1" eType="#//ExecutionSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the execution specification describing the execution that is started or finished at this execution event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExecutionEvent" eSuperTypes="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An ExecutionEvent models the start or finish of an execution occurrence."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StateInvariant" eSuperTypes="#//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="covered" ordered="false" upperBound="-1"
+ eType="#//Lifeline">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="References the Lifeline on which the StateInvariant appears."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//InteractionFragment/covered"/>
+ </contents>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="invariant" ordered="false"
+ lowerBound="1" eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A Constraint that should hold at runtime for this StateInvariant"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActionExecutionSpecification" eSuperTypes="#//ExecutionSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ActionExecutionSpecification is a kind of ExecutionSpecification representing the execution of an action."/>
+ </eAnnotations>
+ <eOperations name="action_referenced" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Action referenced by the ActionExecutionSpecification, if any, must be owned by the Interaction owning the ActionExecutionOccurrence.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="action" ordered="false"
+ lowerBound="1" eType="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Action whose execution is occurring."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BehaviorExecutionSpecification" eSuperTypes="#//ExecutionSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="BehaviorExecutionSpecification is a kind of ExecutionSpecification representing the execution of a behavior."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
+ eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Behavior whose execution is occurring."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CreationEvent" eSuperTypes="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A CreationEvent models the creation of an object."/>
+ </eAnnotations>
+ <eOperations name="no_occurrence_above" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="No othet OccurrenceSpecification may appear above an OccurrenceSpecification which references a CreationEvent on a given Lifeline in an InteractionOperand.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DestructionEvent" eSuperTypes="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A DestructionEvent models the destruction of an object."/>
+ </eAnnotations>
+ <eOperations name="no_occurrence_specifications_below" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="No other OccurrenceSpecifications may appear below an OccurrenceSpecification which references a DestructionEvent on a given Lifeline in an InteractionOperand.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SendOperationEvent" eSuperTypes="#//MessageEvent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A SendOperationEvent models the invocation of an operation call."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
+ lowerBound="1" eType="#//Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation associated with this event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageEvent" abstract="true" eSuperTypes="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A message event specifies the receipt by an object of either a call or a signal. MessageEvent is an abstract metaclass."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SendSignalEvent" eSuperTypes="#//MessageEvent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A SendSignalEvent models the sending of a signal."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+ lowerBound="1" eType="#//Signal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The signal associated with this event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MessageOccurrenceSpecification" eSuperTypes="#//OccurrenceSpecification #//MessageEnd">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="event" ordered="false" lowerBound="1"
+ eType="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Redefines the event referenced to be restricted to a message event."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//OccurrenceSpecification/event"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="InteractionOperatorKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="InteractionOperatorKind is an enumeration designating the different kinds of operators of CombinedFragments. The InteractionOperand defines the type of operator of a CombinedFragment."/>
+ </eAnnotations>
+ <eLiterals name="seq">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The interactionOperator seq designates that the CombinedFragment represents a weak sequencing between the behaviors of the operands."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="alt" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="opt" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="break" value="3">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="par" value="4">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="strict" value="5">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="loop" value="6">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The interactionOperator loop designates that the CombinedFragment represents a loop. The loop operand will be repeated a number of times."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="critical" value="7">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="neg" value="8">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The interactionOperator neg designates that the CombinedFragment represents traces that are defined to be invalid."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="assert" value="9">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="ignore" value="10">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="consider" value="11">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CombinedFragment" eSuperTypes="#//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="opt_loop_break_neg" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the interactionOperator is opt, loop, break, or neg there must be exactly one operand&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="minint_and_maxint" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The InteractionConstraint with minint and maxint only apply when attached to an InteractionOperand where the interactionOperator is loop.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="break" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the interactionOperator is break, the corresponding InteractionOperand must cover all Lifelines within the enclosing InteractionFragment.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="consider_and_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The interaction operators 'consider' and 'ignore' can only be used for the CombineIgnoreFragment subtype of CombinedFragment&#xD;&#xA;((interactionOperator = #consider) or (interactionOperator = #ignore)) implies oclsisTypeOf(CombineIgnoreFragment)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="interactionOperator" ordered="false"
+ lowerBound="1" eType="#//InteractionOperatorKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the operation which defines the semantics of this combination of InteractionFragments."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operand" lowerBound="1"
+ upperBound="-1" eType="#//InteractionOperand" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of operands of the combined fragment."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="cfragmentGate" ordered="false"
+ upperBound="-1" eType="#//Gate" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the gates that form the interface between this CombinedFragment and its surroundings"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Continuation" eSuperTypes="#//InteractionFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="same_name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Continuations with the same name may only cover the same set of Lifelines (within one Classifier).&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="global" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Continuations are always global in the enclosing InteractionFragment e.g. it always covers all Lifelines covered by the enclosing InteractionFragment.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="first_or_last_interaction_fragment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Continuations always occur as the very first InteractionFragment or the very last InteractionFragment of the enclosing InteractionFragment.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="setting" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="True: when the Continuation is at the end of the enclosing InteractionFragment and False when it is in the beginning."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConsiderIgnoreFragment" eSuperTypes="#//CombinedFragment">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="consider_or_ignore" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The interaction operator of a ConsiderIgnoreFragment must be either 'consider' or 'ignore'.&#xD;&#xA;(interactionOperator = #consider) or (interactionOperator = #ignore)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The NamedElements must be of a type of element that identifies a message (e.g., an Operation, Reception, or a Signal).&#xD;&#xA;message->forAll(m | m.oclIsKindOf(Operation) or m.oclIsKindOf(Reception) or m.oclIsKindOf(Signal))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
+ upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of messages that apply to this fragment"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CallEvent" eSuperTypes="#//MessageEvent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
+ lowerBound="1" eType="#//Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Designates the operation whose invocation raised the call event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ChangeEvent" eSuperTypes="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="changeExpression" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A Boolean-valued expression that will result in a change event whenever its value changes from false to true."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SignalEvent" eSuperTypes="#//MessageEvent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+ lowerBound="1" eType="#//Signal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specific signal that is associated with this event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AnyReceiveEvent" eSuperTypes="#//MessageEvent">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CreateObjectAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="CreateObjectAction is an action that creates an object that conforms to a statically specified classifier and puts it on an output pin at runtime."/>
+ </eAnnotations>
+ <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier cannot be abstract.&#xD;&#xA;not (self.classifier.isAbstract = #true)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="classifier_not_association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier cannot be an association class&#xD;&#xA;not self.classifier.oclIsKindOf(AssociationClass)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result pin must be the same as the classifier of the action.&#xD;&#xA;self.result.type = self.classifier"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Classifier to be instantiated."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the output pin on which the result is put."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DestroyObjectAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.target.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The input pin has no type.&#xD;&#xA;self.target.type->size() = 0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyLinks" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether links in which the object participates are destroyed along with the object."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyOwnedObjects"
+ ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether objects owned by the object are destroyed along with the object."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The input pin providing the object to be destroyed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TestIdentityAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action returns true if the two input values are the same identity, false if they are not."/>
+ </eAnnotations>
+ <eOperations name="no_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The input pins have no type.&#xD;&#xA;self.first.type->size() = 0&#xA;and self.second.type->size() = 0&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pins is 1..1.&#xD;&#xA;self.first.multiplicity.is(1,1)&#xA;and self.second.multiplicity.is(1,1)&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="result_is_boolean" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result is Boolean.&#xD;&#xA;self.result.type.oclIsTypeOf(Boolean)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="first" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the pin on which an object is placed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="second" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the pin on which an object is placed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the two input objects are identical."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadSelfAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="contained" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The action must be contained in an behavior that has a host classifier.&#xD;&#xA;self.context->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result output pin is the host classifier.&#xD;&#xA;self.result.type = self.context"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the output pin on which the hosting object is placed.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StructuralFeatureAction" abstract="true"
+ eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The structural feature must not be static.&#xD;&#xA;self.structuralFeature.isStatic = #false"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the object input pin is the same as the classifier of the object passed on this pin.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin must be 1..1.&#xD;&#xA;self.object.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Visibility of structural feature must allow access to the object performing the action.&#xD;&#xA;let host : Classifier = self.context in&#xA;self.structuralFeature.visibility = #public&#xA;or host = self.structuralFeature.featuringClassifier.type&#xA;or (self.structuralFeature.visibility = #protected and host.allSupertypes&#xA;->includes(self.structuralFeature.featuringClassifier.type)))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="one_featuring_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A structural feature has exactly one featuringClassifier.&#xD;&#xA;self.structuralFeature.featuringClassifier->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="structuralFeature" ordered="false"
+ lowerBound="1" eType="#//StructuralFeature">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Structural feature to be read."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the input pin from which the object whose structural feature is to be read or written is obtained.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadStructuralFeatureAction" eSuperTypes="#//StructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action reads the values of a structural feature, in order if the structural feature is ordered."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the structural feature must be compatible with the multiplicity of the output pin.&#xD;&#xA;self.structuralFeature.multiplicity.compatibleWith(self.result.multiplicity)"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//StructuralFeatureAction/multiplicity"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type and ordering of the result output pin are the same as the type and ordering of the structural feature.&#xD;&#xA;self.result.type = self.structuralFeature.type&#xA;and self.result.ordering = self.structuralFeature.ordering&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the output pin on which the result is put."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WriteStructuralFeatureAction" abstract="true"
+ eSuperTypes="#//StructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//StructuralFeatureAction/multiplicity"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type input pin is the same as the classifier of the structural feature.&#xD;&#xA;self.value.type = self.structuralFeature.featuringClassifier"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value to be added or removed from the structural feature."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClearStructuralFeatureAction" eSuperTypes="#//StructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action removes all values of a structural feature."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RemoveStructuralFeatureValueAction"
+ eSuperTypes="#//WriteStructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="non_unique_removal" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRemoveDuplicates" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether to remove duplicates of the value in nonunique structural features."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="removeAt" ordered="false"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AddStructuralFeatureValueAction" eSuperTypes="#//WriteStructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.structuralFeature.isOrdered = #false&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin= insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether existing values of the structural feature of the object should be removed before adding the new value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" ordered="false"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkAction" abstract="true" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A link action creates, destroys, or reads links, identifying a link by its end objects and qualifier values, if any."/>
+ </eAnnotations>
+ <eOperations name="same_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;self.endData->collect(end) = self.association()->collect(connection))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_static" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association ends of the link end data must not be static.&#xD;&#xA;self.endData->forall(end.oclisKindOf(NavigableEnd) implies end.isStatic = #false"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The input pins of the action are the same as the pins of the link end data and insertion pins.&#xD;&#xA;self.input->asSet() =&#xA;let ledpins : Set = self.endData->collect(value) in&#xA;if self.oclIsKindOf(LinkEndCreationData)&#xA;then ledpins->union(self.endData.oclAsType(LinkEndCreationData).insertAt)&#xA;else ledpins&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="association" ordered="false" lowerBound="1" eType="#//Association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association operates on LinkAction. It returns the association of the action.&#xD;&#xA;result = self.endData->asSequence().first().end.association"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="endData" ordered="false"
+ lowerBound="2" upperBound="-1" eType="#//LinkEndData" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Data identifying one end of a link by the objects on its ends and qualifiers."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputValue" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pins taking end objects and qualifier values as input."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkEndData" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="property_is_association_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The property must be an association end.&#xD;&#xA;self.end.association->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the end object input pin is the same as the type of the association end.&#xD;&#xA;self.value.type = self.end.type"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the end object input pin must be 1..1.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="qualifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The qualifiers include all and only the qualifiers of the association end.&#xD;&#xA;self.qualifier->collect(qualifier) = self.end.qualifier"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="end_object_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The end object input pin is not also a qualifier value input pin.&#xD;&#xA;self.value->excludesAll(self.qualifier.value)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ eType="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="end" ordered="false" lowerBound="1"
+ eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Association end for which this link-end data specifies values."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
+ upperBound="-1" eType="#//QualifierValue" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="List of qualifier values"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="QualifierValue" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The qualifier attribute must be a qualifier of the association end of the link-end data.&#xD;&#xA;self.LinkEndData.end->collect(qualifier)->includes(self.qualifier)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the qualifier value input pin is the same as the type of the qualifier attribute.&#xD;&#xA;self.value.type = self.qualifier.type"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the qualifier value input pin is &quot;1..1&quot;.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
+ lowerBound="1" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Attribute representing the qualifier for which the value is to be specified."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ lowerBound="1" eType="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Input pin from which the specified value for the qualifier is taken."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadLinkAction" eSuperTypes="#//LinkAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="one_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Exactly one link-end data specification (the 'open' end) must not have an end object input pin.&#xD;&#xA;self.endData->select(ed | ed.value->size() = 0)->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type and ordering of the result output pin are same as the type and ordering of the open association end.&#xD;&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;self.result.type = openend.type&#xA;and self.result.ordering = openend.ordering&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the open association end must be compatible with the multiplicity of the result output pin.&#xD;&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.multiplicity.compatibleWith(self.result.multiplicity)&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="navigable_open_end" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The open end must be navigable.&#xD;&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.isNavigable()&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="visibility" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Visibility of the open end must allow access to the object performing the action.&#xD;&#xA;let host : Classifier = self.context in&#xA;let openend : AssociationEnd = self.endData->select(ed | ed.value->size() = 0)->asSequence()->first().end in&#xA;openend.visibility = #public&#xA;or self.endData->exists(oed | not oed.end = openend&#xA;and (host = oed.end.participant&#xA;or (openend.visibility = #protected&#xA;and host.allSupertypes->includes(oed.end.participant))))&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The pin on which are put the objects participating in the association at the end not specified by the inputs.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkEndCreationData" eSuperTypes="#//LinkEndData">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;Qualifier values are used in CompleteActions to identify links to create."/>
+ </eAnnotations>
+ <eOperations name="create_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="LinkEndCreationData can only be end data for CreateLinkAction or one of its specializations.&#xD;&#xA;self.LinkAction.oclIsKindOf(CreateLinkAction)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="single_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.end.ordering = #unordered&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin = insertAts->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether the existing links emanating from the object on this end should be destroyed before creating a new link."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" ordered="false"
+ eType="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CreateLinkAction" eSuperTypes="#//WriteLinkAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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 &#xA;&#xA;specified ends to be destroyed before the new link is created."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="endData" ordered="false" lowerBound="2"
+ upperBound="-1" eType="#//LinkEndCreationData" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies ends of association and inputs."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//LinkAction/endData"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="association_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association cannot be an abstract classifier.&#xD;&#xA;self.association().isAbstract = #false"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WriteLinkAction" abstract="true" eSuperTypes="#//LinkAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A write link action takes a complete identification of a link and creates or destroys it."/>
+ </eAnnotations>
+ <eOperations name="allow_access" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The visibility of at least one end must allow access to the class using the action.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DestroyLinkAction" eSuperTypes="#//WriteLinkAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="endData" ordered="false" lowerBound="2"
+ upperBound="-1" eType="#//LinkEndDestructionData" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies ends of association and inputs."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//LinkAction/endData"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkEndDestructionData" eSuperTypes="#//LinkEndData">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;Qualifier values are used in CompleteActions to identify links to destroy."/>
+ </eAnnotations>
+ <eOperations name="destroy_link_action" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="LinkEndDestructionData can only be end data for DestroyLinkAction or one of its specializations.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="unlimited_natural_and_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDestroyDuplicates" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether to destroy duplicates of the value in nonunique association ends."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="destroyAt" ordered="false"
+ eType="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClearAssociationAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action destroys all links of an association that have a particular object at one end."/>
+ </eAnnotations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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.&#xD;&#xA;self.association->exists(end.type = self.object.type)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.object.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the input pin from which is obtained the object whose participation in the association is to be cleared."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="association" ordered="false"
+ lowerBound="1" eType="#//Association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Association to be cleared."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BroadcastSignalAction" eSuperTypes="#//InvocationAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number and order of argument pins must be the same as the number and order of attributes in the signal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+ lowerBound="1" eType="#//Signal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The specification of signal object transmitted to the target objects."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InvocationAction" abstract="true" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Invocation is an abstract class for the various actions that invoke behavior.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="on_port" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The onPort must be a port on the receiver object.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="argument" upperBound="-1"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specification of the ordered set of argument values that appears during execution."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="onPort" ordered="false"
+ eType="#//Port">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A optional port of the receiver object on which the behavioral feature is invoked."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SendObjectAction" eSuperTypes="#//InvocationAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target object to which the object is sent."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="request" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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)"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//InvocationAction/argument"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValueSpecificationAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The action returns the result of evaluating a value specification."/>
+ </eAnnotations>
+ <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of value specification must be compatible with the type of the result pin.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the result pin is 1..1&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value specification to be evaluated."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TimeExpression" eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A TimeExpression defines a value specification that represents a time value."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstTime" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
+ eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the specification of the event occurrence that the TimeExpression describes"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Duration" eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A duration defines a value specification that specifies the temporal distance between two time expressions that specify time instants."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstTime" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="event" ordered="false"
+ upperBound="2" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TimeObservationAction" eSuperTypes="#//WriteStructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A TimeObservationAction defines an action that observes the current point in time and writes this value to a structural feature."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="value" ordered="false" lowerBound="1"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Input whose time expression is to be written to the structural feature."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//WriteStructuralFeatureAction/value"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="input_value_time_expression" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The value of a TimeObservationAction’s input must be a TimeExpression.&#xD;&#xA;self.value.value.oclIsKindOf(TimeExpression)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="getNow" ordered="false" lowerBound="1" eType="#//TimeExpression">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="self.value.value.oclAsType(TimeExpression)"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="now" ordered="false" lowerBound="1"
+ eType="#//TimeExpression" volatile="true" transient="true" derived="true"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the current point in time and the value which is observed given by the keyword now."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ValuePin" eSuperTypes="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A value pin is an input pin that provides a value by evaluating a value specification."/>
+ </eAnnotations>
+ <eOperations name="compatible_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of value specification must be compatible with the type of the value pin.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value that the pin will provide."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DurationInterval" eSuperTypes="#//Interval">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A DurationInterval defines the range between two Durations."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="min" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the Duration denoting the minimum value of the range."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Interval/min"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="max" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the Duration denoting the maximum value of the range."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Interval/max"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Interval" eSuperTypes="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An Interval defines the range between two value specifications."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="min" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the ValueSpecification denoting the minimum value of the range."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="max" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the ValueSpecification denoting the maximum value of the range."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TimeConstraint" eSuperTypes="#//IntervalConstraint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A TimeConstraint defines a Constraint that refers to a TimeInterval."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="specification" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//IntervalConstraint/%duplicates%/specification #//Constraint/specification"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="IntervalConstraint" eSuperTypes="#//Constraint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A IntervalConstraint defines a Constraint that refers to an Interval."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="specification" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A condition that must be true when evaluated in order for the constraint to be satisfied."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Constraint/specification"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TimeInterval" eSuperTypes="#//Interval">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A TimeInterval defines the range between two TimeExpressions."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="max" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the TimeExpression denoting the maximum value of the range."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Interval/max"/>
+ </contents>
+ <contents xsi:type="ecore:EReference" name="min" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Refers to the TimeExpression denoting the minimum value of the range."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Interval/min"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DurationObservationAction" eSuperTypes="#//WriteStructuralFeatureAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A DurationObservationAction defines an action that observes duration in time and writes this value to a structural feature."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="value" ordered="false" lowerBound="1"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Input whose duration is to be written to the structural feature."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//WriteStructuralFeatureAction/value"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="input_value_duration" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The value of a DurationObservationAction’s input must be a Duration.&#xD;&#xA;self.value.value.oclIsKindOf(Duration)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="getDuration" ordered="false" lowerBound="1" eType="#//Duration">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="result = self.value.value.oclAsType(Duration)"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="duration" ordered="false"
+ lowerBound="1" eType="#//Duration" volatile="true" transient="true" derived="true"
+ resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents the measured Duration"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DurationConstraint" eSuperTypes="#//IntervalConstraint">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A DurationConstraint defines a Constraint that refers to a DurationInterval."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EReference" name="specification" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The interval constraining the duration."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//IntervalConstraint/%duplicates%/specification #//Constraint/specification"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OpaqueAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An action with implementation-specific semantics."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" lowerBound="1" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the action in one or more languages."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Languages the body strings use, in the same order as the body strings"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputValue" ordered="false"
+ upperBound="-1" eType="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Provides input to the action."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputValue" ordered="false"
+ upperBound="-1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Takes output from the action."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CallAction" abstract="true" eSuperTypes="#//InvocationAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="CallAction is an abstract class for actions that invoke behavior and receive return values."/>
+ </eAnnotations>
+ <eOperations name="synchronous_call" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only synchronous call actions can have result pins.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="number_and_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding parameter of the behavior or behavioral feature.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isSynchronous" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If true, the call is synchronous and the caller waits for completion of the invoked behavior.&#xA;&#xA;If false, the call is asynchronous and the caller proceeds immediately and does not expect a return values.&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
+ eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A list of output pins where the results of performing the invocation are placed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SendSignalAction" eSuperTypes="#//InvocationAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="number_order" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number and order of argument pins must be the same as the number and order of attributes in the signal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The target object to which the signal is sent."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="signal" ordered="false"
+ lowerBound="1" eType="#//Signal">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of signal transmitted to the target object."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CallOperationAction" eSuperTypes="#//CallAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//CallAction/type_ordering_multiplicity"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="argument_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="result_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_target_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the target pin must be the same as the type that owns the operation.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operation" ordered="false"
+ lowerBound="1" eType="#//Operation">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation to be invoked by the action execution."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="target" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CallBehaviorAction" eSuperTypes="#//CallAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="type_ordering_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding parameter of the behavior.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//CallAction/type_ordering_multiplicity"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="argument_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number of argument pins and the number of parameters of the behavior of type in and in-out must be equal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="result_pin_equal_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number of result pins and the number of parameters of the behavior of type return, out, and in-out must be equal.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
+ lowerBound="1" eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The invoked behavior. It must be capable of accepting and returning control."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InformationItem" eSuperTypes="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="sources_and_targets" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;(self.represented->select(p | p->oclIsKindOf(InformationItem))->forAll(p |&#xA;&#xA; p.informationFlow.source->forAll(q | self.informationFlow.source->include(q)) and&#xA;&#xA; p.informationFlow.target->forAll(q | self.informationFlow.target->include(q)))) and&#xA;&#xA; (self.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface) or&#xA;&#xA; oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="has_no" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An informationItem has no feature, no generalization, and no associations.&#xD;&#xA;self.generalization->isEmpty() and self.feature->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="not_instantiable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="It is not instantiable.&#xD;&#xA;isAbstract"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="represented" ordered="false"
+ upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines the classifiers that will specify the structure and nature of the information. An information item represents all its represented classifiers."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InformationFlow" eSuperTypes="#//PackageableElement #//DirectedRelationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="sources_and_targets_kind" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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).&#xD;&#xA;(self.source->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or&#xA;&#xA; oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or&#xA;&#xA; oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or&#xA;&#xA; oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or&#xA;&#xA; oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification))) and&#xA;&#xA; (self.target->forAll(p | p->oclIsKindOf(Actor) or oclIsKindOf(Node) or&#xA;&#xA; oclIsKindOf(UseCase) or oclIsKindOf(Artifact) or oclIsKindOf(Class) or&#xA;&#xA; oclIsKindOf(Component) or oclIsKindOf(Port) or oclIsKindOf(Property) or&#xA;&#xA; oclIsKindOf(Interface) or oclIsKindOf(Package) or oclIsKindOf(ActivityNode) or&#xA;&#xA; oclIsKindOf(ActivityPartition) or oclIsKindOf(InstanceSpecification)))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="must_conform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="convey_classifiers" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An information flow can only convey classifiers that are allowed to represent an information item.&#xA;&#xA;&#xD;&#xA;self.conveyed.represented->forAll(p | p->oclIsKindOf(Class) or oclIsKindOf(Interface)&#xA;&#xA; or oclIsKindOf(InformationItem) or oclIsKindOf(Signal) or oclIsKindOf(Component))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realization" ordered="false"
+ upperBound="-1" eType="#//Relationship">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines which Relationship will realize the specified flow"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="conveyed" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the information items that may circulate on this information flow."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="informationSource" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines from which source the conveyed InformationItems are initiated."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="informationTarget" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//NamedElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines to which target the conveyed InformationItems are directed."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realizingActivityEdge"
+ ordered="false" upperBound="-1" eType="#//ActivityEdge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines which ActivityEdges will realize the specified flow."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realizingConnector" ordered="false"
+ upperBound="-1" eType="#//Connector">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines which Connectors will realize the specified flow."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realizingMessage" ordered="false"
+ upperBound="-1" eType="#//Message">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Determines which Messages will realize the specified flow."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Model" eSuperTypes="#//Package">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="viewpoint" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The name of the viewpoint that is expressed by a model (This name may refer to a profile definition)."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="VariableAction" abstract="true" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="VariableAction is an abstract class for actions that operate on a statically specified variable."/>
+ </eAnnotations>
+ <eOperations name="scope_of_variable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The action must be in the scope of the variable.&#xD;&#xA;self.variable.isAccessibleBy(self)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
+ lowerBound="1" eType="#//Variable">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Variable to be read."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadVariableAction" eSuperTypes="#//VariableAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action reads the values of a variables, in order if the variable is ordered."/>
+ </eAnnotations>
+ <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;self.result.type =self.variable.type&#xA;and self.result.ordering = self.variable.ordering&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="compatible_multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the variable must be compatible with the multiplicity of the output pin.&#xD;&#xA;self.variable.multiplicity.compatibleWith(self.result.multiplicity)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the output pin on which the result is put."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WriteVariableAction" abstract="true"
+ eSuperTypes="#//VariableAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type input pin is the same as the type of the variable.&#xD;&#xA;self.value.type = self.variable.type"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.value.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Value to be added or removed from the variable."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ClearVariableAction" eSuperTypes="#//VariableAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action removes all values of an variable."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AddVariableValueAction" eSuperTypes="#//WriteVariableAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="single_input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;let insertAtPins : Collection = self.insertAt in&#xA;if self.variable.ordering = #unordered&#xA;then insertAtPins->size() = 0&#xA;else let insertAtPin : InputPin = insertAt->asSequence()->first() in&#xA;insertAtPins->size() = 1&#xA;and insertAtPin.type = UnlimitedNatural&#xA;and insertAtPin.multiplicity.is(1,1))&#xA;endif&#xA;"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether existing values of the variable should be removed before adding the new value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="insertAt" ordered="false"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" 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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RemoveVariableValueAction" eSuperTypes="#//WriteVariableAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="unlimited_natural" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRemoveDuplicates" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether to remove duplicates of the value in nonunique variables."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="removeAt" ordered="false"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RaiseExceptionAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="RaiseExceptionAction is an action that causes an exception to occur. The input value becomes the exception object."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="exception" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An input pin whose value becomes an exception object."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActionInputPin" eSuperTypes="#//InputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An action input pin is a kind of pin that executes an action to determine the values to input to another."/>
+ </eAnnotations>
+ <eOperations name="one_output_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The fromAction of an action input pin must have exactly one output pin.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The fromAction of an action input pin must only have action input pins as input pins.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_control_or_data_flow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The fromAction of an action input pin cannot have control or data flows coming into or out of it or its pins.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="fromAction" ordered="false"
+ lowerBound="1" eType="#//Action" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The action used to provide values."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadExtentAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ReadExtentAction is an action that retrieves the current instances of a classifier."/>
+ </eAnnotations>
+ <eOperations name="type_is_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result output pin is the classifier.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the result output pin is 0..*.&#xD;&#xA;self.result.multiplicity.is(0,#null)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The runtime instances of the classifier."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier whose instances are to be retrieved."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReclassifyObjectAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ReclassifyObjectAction adds given classifier to an object and removes given classifiers from that object. Multiple classifiers may be added and removed at a time."/>
+ </eAnnotations>
+ <eOperations name="classifier_not_abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="None of the new classifiers may be abstract.&#xD;&#xA;not self.newClassifier->exists(isAbstract = true)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.argument.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="input_pin" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The input pin has no type.&#xD;&#xA;self.argument.type->size() = 0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isReplaceAll" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether existing classifiers should be removed before adding the new classifiers."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="oldClassifier" ordered="false"
+ upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A set of classifiers to be removed from the classifiers of the object."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="newClassifier" ordered="false"
+ upperBound="-1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A set of classifiers to be added to the classifiers of the object."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Holds the object to be reclassified."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadIsClassifiedObjectAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action tests the classification of an object against a given class. It can be restricted to testing direct instances."/>
+ </eAnnotations>
+ <eOperations name="multiplicity_of_input" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1.&#xD;&#xA;self.object.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The input pin has no type.&#xD;&#xA;self.object.type->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_output" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="boolean_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the output pin is Boolean&#xD;&#xA;self.result.type = Boolean"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDirect" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether the classifier must directly classify the input object."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The classifier against which the classification of the input object is tested."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="After termination of the action, will hold the result of the test."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Holds the object whose classification is to be tested."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StartClassifierBehaviorAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="StartClassifierBehaviorAction is an action that starts the classifier behavior of the input."/>
+ </eAnnotations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the input pin is 1..1&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_has_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the input pin has a type, then the type must have a classifier behavior.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Holds the object on which to start the owned behavior."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadLinkObjectEndAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="property" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The property must be an association end.&#xD;&#xA;self.end.association.notEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association of the association end must be an association class.&#xD;&#xA;self.end.Association.oclIsKindOf(AssociationClass)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ends of the association must not be static.&#xD;&#xA;self.end.association.memberEnd->forall(e | not e.isStatic)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the object input pin is the association class that owns the association end.&#xD;&#xA;self.object.type = self.end.association"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the object input pin is 1..1.&#xD;&#xA;self.object.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result output pin is the same as the type of the association end.&#xD;&#xA;self.result.type = self.end.type"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the input pin from which the link object is obtained."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="end" ordered="false" lowerBound="1"
+ eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Link end to be read."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pin where the result value is placed"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReadLinkObjectEndQualifierAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="qualifier_attribute" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The qualifier attribute must be a qualifier attribute of an association end.&#xD;&#xA;self.qualifier.associationEnd->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="association_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association of the association end of the qualifier attribute must be an association class.&#xD;&#xA;self.qualifier.associationEnd.association.oclIsKindOf(AssociationClass)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="ends_of_association" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The ends of the association must not be static.&#xD;&#xA;self.qualifier.associationEnd.association.memberEnd->forall(e | not e.isStatic)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the object input pin is the association class that owns the association end that has the given qualifier attribute.&#xD;&#xA;self.object.type = self.qualifier.associationEnd.association"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_qualifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the qualifier attribute is 1..1.&#xD;&#xA;self.qualifier.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the object input pin is 1..1.&#xD;&#xA;self.object.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result output pin is the same as the type of the qualifier attribute.&#xD;&#xA;self.result.type = self.qualifier.type"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the result output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="(Specialized from Action:input) Gives the input pin from which the link object is obtained."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pin where the result value is placed"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
+ lowerBound="1" eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The attribute representing the qualifier to be read."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CreateLinkObjectAction" eSuperTypes="#//CreateLinkAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This action is exclusively for creating links of association classes. It returns the created link object."/>
+ </eAnnotations>
+ <eOperations name="association_class" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association must be an association class.&#xD;&#xA;self.association().oclIsKindOf(Class)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the result pin must be the same as the association of the action.&#xD;&#xA;self.result.type = self.association()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the output pin is 1..1.&#xD;&#xA;self.result.multiplicity.is(1,1)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Gives the output pin on which the result is put."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AcceptEventAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="AcceptEventAction is an action that waits for the occurrence of an event meeting specified conditions."/>
+ </eAnnotations>
+ <eOperations name="no_input_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="AcceptEventActions may have no input pins.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_output_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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).&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="trigger_events" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If the trigger events are all TimeEvents, there is exactly one output pin.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="is_unmarshall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnmarshall" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates whether there is a single output pin for the event, or multiple output pins for attributes of the event."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ upperBound="-1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Pins holding the received event objects or their attributes. Event objects may be copied in transmission, so identity might not be preserved."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="trigger" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Trigger" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AcceptCallAction" eSuperTypes="#//AcceptEventAction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="is_unmarshall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="isUnmrashall must be true for an AcceptCallAction.&#xD;&#xA;isUnmarshall = true"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//AcceptEventAction/is_unmarshall"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ <eOperations name="result_pins" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The result pins must match the in and inout parameters of the operation specified by the trigger event in number, type, and order.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="trigger_call_event" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The trigger event must be a CallEvent.&#xD;&#xA;trigger.event.oclIsKindOf(CallEvent)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
+ lowerBound="1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ReplyAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="pins_match_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="event_on_reply_to_call_trigger" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The event on replyToCall trigger must be a CallEvent replyToCallEvent.oclIsKindOf(CallEvent)&#xD;&#xA;replyToCallEvent.oclIsKindOf(CallEvent)"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="replyToCall" ordered="false"
+ lowerBound="1" eType="#//Trigger">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The trigger specifying the operation whose call is being replied to."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="returnInformation" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A pin containing the return information value produced by an earlier AcceptCallAction."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="replyValue" ordered="false"
+ upperBound="-1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A list of pins containing the reply values of the operation. These values are returned to the caller."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnmarshallAction" eSuperTypes="#//Action">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The outputs of this action correspond to the structural features of the specified type. The input must be of this type."/>
+ </eAnnotations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the object input pin must be the same as the unmarshall classifier.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_object" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of the object input pin is 1..1&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="number_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The number of result output pins must be the same as the number of structural features of the unmarshall classifier.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="type_and_ordering" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type and ordering of each result output pin must be the same as the corresponding structural feature of the unmarshall classifier.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="multiplicity_of_result" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The multiplicity of each result output pin must be compatible with the multiplicity of the corresponding structural features of the unmarshall classifier.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="structural_feature" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The unmarshall classifier must have at least one structural feature.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="unmarshallType_is_classifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="unmarshallType must be a Classifier with ordered attributes&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The values of the structural features of the input object."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unmarshallType" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of the object to be unmarshalled."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="object" ordered="false"
+ lowerBound="1" eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The object to be unmarshalled."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ControlNode" abstract="true" eSuperTypes="#//ActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ControlFlow" eSuperTypes="#//ActivityEdge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Objects and data cannot pass along a control flow edge."/>
+ </eAnnotations>
+ <eOperations name="object_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Control flows may not have object nodes at either end, except for object nodes with control type.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InitialNode" eSuperTypes="#//ControlNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An activity may have more than one initial node."/>
+ </eAnnotations>
+ <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An initial node has no incoming edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="control_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Only control edges can have initial nodes as source.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActivityParameterNode" eSuperTypes="#//ObjectNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity parameter nodes must have parameters from the containing activity.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_type" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The type of an activity parameter node is the same as the type of its parameter.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An activity parameter node may have all incoming edges or all outgoing edges, but it must not have both incoming and outgoing edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_incoming_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity parameter object nodes with no incoming edges and one or more outgoing edges must have a parameter with in or inout direction.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Activity parameter object nodes with no outgoing edges and one or more incoming edges must have a parameter with out, inout, or return direction.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
+ lowerBound="1" eType="#//Parameter">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The parameter the object node will be accepting or providing values for."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ForkNode" eSuperTypes="#//ControlNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A fork node has one incoming edge and multiple outgoing edges."/>
+ </eAnnotations>
+ <eOperations name="one_incoming_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A fork node has one incoming edge.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The edges coming into and out of a fork node must be either all object flows or all control flows.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FlowFinalNode" eSuperTypes="#//FinalNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A flow final destroys all tokens that arrive at it. It has no effect on other flows in the activity."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FinalNode" abstract="true" eSuperTypes="#//ControlNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final node is an abstract control node at which a flow in an activity stops."/>
+ </eAnnotations>
+ <eOperations name="no_outgoing_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final node has no outgoing edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CentralBufferNode" eSuperTypes="#//ObjectNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="MergeNode" eSuperTypes="#//ControlNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A merge node has multiple incoming edges and a single outgoing edge."/>
+ </eAnnotations>
+ <eOperations name="one_outgoing_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A merge node has one outgoing edge.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The edges coming into and out of a merge node must be either all object flows or all control flows.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DecisionNode" eSuperTypes="#//ControlNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A decision node has one incoming edge and multiple outgoing activity edges."/>
+ </eAnnotations>
+ <eOperations name="one_incoming_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A decision node has one incoming edge.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="input_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The edges coming into and out of a decision node must be either all object flows or all control flows.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decisionInput" ordered="false"
+ eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Provides input to guard specifications on edges outgoing from the decision node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ActivityFinalNode" eSuperTypes="#//FinalNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An activity may have more than one activity final node. The first one reached stops all flows in the activity."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="JoinNode" eSuperTypes="#//ControlNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A join node has multiple incoming edges and one outgoing edge.&#xD;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="one_outgoing_edge" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A join node has one outgoing edge.&#xD;&#xA;self.outgoing->size() = 1"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="incoming_object_flow" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If a join node has an incoming object flow, it must have an outgoing object flow, otherwise, it must have an outgoing control flow.&#xD;&#xA;(self.incoming.select(e | e.isTypeOf(ObjectFlow)->notEmpty() implies&#xA;&#xA; self.outgoing.isTypeOf(ObjectFlow)) and&#xA;&#xA; (self.incoming.select(e | e.isTypeOf(ObjectFlow)->empty() implies&#xA;&#xA; self.outgoing.isTypeOf(ControlFlow))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isCombineDuplicate" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether tokens having objects with the same identity are combined into one by the join."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="joinSpec" ordered="false"
+ lowerBound="1" eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A specification giving the conditions under which the join with emit a token. Default is &quot;and&quot;."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="DataStoreNode" eSuperTypes="#//CentralBufferNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ObjectFlow" eSuperTypes="#//ActivityEdge">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An object flow models the flow of values to or from object nodes."/>
+ </eAnnotations>
+ <eOperations name="no_actions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Object flows may not have actions at either end.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="compatible_types" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="same_upper_bounds" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Object nodes connected by an object flow, with optionally intervening control nodes, must have the same upper bounds.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="target" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="transformation_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="selection_behaviour" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An object flow may have a selection behavior only if has an object node as a source.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="input_and_output_parameter" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="is_multicast_or_is_multireceive" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="isMulticast and isMultireceive cannot both be true.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMulticast" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the objects in the flow are passed by multicasting."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMultireceive" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Tells whether the objects in the flow are gathered from respondents to multicasting."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="transformation" ordered="false"
+ eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Changes or replaces data tokens flowing along edge."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="selection" ordered="false"
+ eType="#//Behavior">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Selects tokens from a source object node."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SequenceNode" eSuperTypes="#//StructuredActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A sequence node is a structured activity node that executes its actions in order."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="executableNode" upperBound="-1"
+ eType="#//ExecutableNode" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An ordered set of executable nodes."/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//StructuredActivityNode/node"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ConditionalNode" eSuperTypes="#//StructuredActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;An &quot;else&quot; clause is a clause that is a successor to all other clauses in the conditional and whose test part always returns true.&#xA;&#xA;&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The result output pins have no incoming edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDeterminate" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If true, the modeler asserts that at most one test will succeed."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAssured" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If true, the modeler asserts that at least one test will succeed."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="clause" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//Clause" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Set of clauses composing the conditional."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
+ eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A list of output pins that constitute the data flow outputs of the conditional."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Clause" eSuperTypes="#//Element">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="decider_output" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The decider output pin must be for the test body or a node contained by the test body as a structured node.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="body_output" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The bodyOutput pins are output pins on actions in the body of the clause.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="test" ordered="false" upperBound="-1"
+ eType="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A nested activity fragment with a designated output pin that specifies the result of the test."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" upperBound="-1"
+ eType="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="predecessorClause" ordered="false"
+ upperBound="-1" eType="#//Clause" eOpposite="#//Clause/successorClause">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A set of clauses whose tests must all evaluate false before the current clause can be tested."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="successorClause" ordered="false"
+ upperBound="-1" eType="#//Clause" eOpposite="#//Clause/predecessorClause">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A set of clauses which may not be tested unless the current clause tests false."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decider" ordered="false"
+ lowerBound="1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" ordered="false"
+ upperBound="-1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LoopNode" eSuperTypes="#//StructuredActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="input_edges" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Loop variable inputs must not have outgoing edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="body_output" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The bodyOutput pins are output pins on actions in the body of the loop node.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="result_no_incoming" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The result output pins have no incoming edges.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTestedFirst" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="If true, the test is performed before the first execution of the body.&#xA;If false, the body is executed once before the test is performed.&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodyPart" ordered="false"
+ upperBound="-1" eType="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="setupPart" ordered="false"
+ upperBound="-1" eType="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of nodes and edges that initialize values or perform other setup computations for the loop."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="decider" ordered="false"
+ lowerBound="1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="test" ordered="false" upperBound="-1"
+ eType="#//ExecutableNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The set of nodes, edges, and designated value that compute a Boolean value to determine if another execution of the body will be performed."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="result" upperBound="-1"
+ eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A list of output pins that constitute the data flow output of the entire loop."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/output"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="loopVariable" upperBound="-1"
+ eType="#//OutputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="bodyOutput" ordered="false"
+ upperBound="-1" eType="#//OutputPin">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="loopVariableInput" upperBound="-1"
+ eType="#//InputPin" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A list of values that are moved into the loop variable pins before the first iteration of the loop."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Action/input"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExpansionNode" eSuperTypes="#//ObjectNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="regionAsOutput" ordered="false"
+ eType="#//ExpansionRegion" eOpposite="#//ExpansionRegion/outputElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The expansion region for which the node is an output."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="regionAsInput" ordered="false"
+ eType="#//ExpansionRegion" eOpposite="#//ExpansionRegion/inputElement">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The expansion region for which the node is an input."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExpansionRegion" eSuperTypes="#//StructuredActivityNode">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;&#xA;&#xA;The inputs and outputs to an expansion region are modeled as ExpansionNodes. From &quot;outside&quot; of the region, the values on these nodes appear as collections. From &quot;inside&quot; 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.&#xA;&#xA;&#xA;&#xA;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."/>
+ </eAnnotations>
+ <eOperations name="expansion_nodes" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An ExpansionRegion must have one or more argument ExpansionNodes and zero or more result ExpansionNodes.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mode" ordered="false" lowerBound="1"
+ eType="#//ExpansionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The way in which the executions interact:&#xA;&#xA;parallel: all interactions are independent&#xA;&#xA;iterative: the interactions occur in order of the elements&#xA;&#xA;stream: a stream of values flows into a single execution&#xA;&#xA;"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="inputElement" ordered="false"
+ lowerBound="1" upperBound="-1" eType="#//ExpansionNode" eOpposite="#//ExpansionNode/regionAsInput">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An object node that holds a separate element of the input collection during each of the multiple executions of the region."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="outputElement" ordered="false"
+ upperBound="-1" eType="#//ExpansionNode" eOpposite="#//ExpansionNode/regionAsOutput">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="ExpansionKind">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="ExpansionKind is an enumeration type used to specify how multiple executions of an expansion region interact."/>
+ </eAnnotations>
+ <eLiterals name="parallel">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The executions are independent. They may be executed concurrently."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="iterative" value="1">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The executions are dependent and must be executed one at a time, in order of the collection elements."/>
+ </eAnnotations>
+ </eLiterals>
+ <eLiterals name="stream" value="2">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A stream of collection elements flows into a single execution, in order of the collection elements."/>
+ </eAnnotations>
+ </eLiterals>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ComponentRealization" eSuperTypes="#//Realization">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In the metamodel, a ComponentRealization is a subtype of Dependencies::Realization."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="abstraction" ordered="false"
+ eType="#//Component" transient="true" eOpposite="#//Component/realization">
+ <eAnnotations source="subsets" references="#//DirectedRelationship/source #//Element/owner #//Dependency/client"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realizingClassifier" ordered="false"
+ lowerBound="1" eType="#//Classifier">
+ <eAnnotations source="subsets" references="#//DirectedRelationship/target #//Dependency/supplier"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//Class #//Namespace">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="realizedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Utility returning the set of realized interfaces of a component:&#xD;&#xA;result = (classifier.clientDependency->&#xA;select(dependency|dependency.oclIsKindOf(Realization) and dependency.supplier.oclIsKindOf(Interface)))->&#xA;collect(dependency|dependency.client)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="usedInterfaces" ordered="false" upperBound="-1" eType="#//Interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Utility returning the set of used interfaces of a component:&#xD;&#xA;result = (classifier.supplierDependency->&#xA;select(dependency|dependency.oclIsKindOf(Usage) and dependency.supplier.oclIsKindOf(interface)))->&#xA;collect(dependency|dependency.supplier)"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getRequireds" ordered="false" upperBound="-1" eType="#//Interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="result = let usedInterfaces = UsedInterfaces(self) and&#xA;&#xA; let realizingClassifierUsedInterfaces = UsedInterfaces(self.realizingClassifier) and&#xA;&#xA; let typesOfUsedPorts = self.ownedPort.required in&#xA;&#xA; ((usedInterfaces->union(realizingClassifierUsedInterfaces))->&#xA;&#xA; union(typesOfUsedPorts))->asSet()"/>
+ </eAnnotations>
+ </eOperations>
+ <eOperations name="getProvideds" ordered="false" upperBound="-1" eType="#//Interface">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="result = let implementedInterfaces = self.implementation->collect(impl|impl.contract) and&#xA;&#xA; let realizedInterfaces = RealizedInterfaces(self) and&#xA;&#xA; let realizingClassifierInterfaces = RealizedInterfaces(self.realizingClassifier) and&#xA;&#xA; let typesOfRequiredPorts = self.ownedPort.provided in&#xA;&#xA; (((implementedInterfaces->union(realizedInterfaces)->union(realizingClassifierInterfaces))->&#xA;&#xA; union(typesOfRequiredPorts))->asSet()"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isIndirectlyInstantiated"
+ ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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»."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="required" ordered="false"
+ upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="provided" ordered="false"
+ upperBound="-1" eType="#//Interface" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="packagedElement" ordered="false"
+ upperBound="-1" eType="#//PackageableElement" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="realization" ordered="false"
+ upperBound="-1" eType="#//ComponentRealization" transient="true" containment="true"
+ resolveProxies="false" eOpposite="#//ComponentRealization/abstraction">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//Class #//DeploymentTarget">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="internal_structure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The internal structure of a Node (if defined) consists solely of parts of type Node.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="nestedNode" ordered="false"
+ upperBound="-1" eType="#//Node" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The Nodes that are defined (nested) within the Node."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Namespace/ownedMember"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Device" eSuperTypes="#//Node">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ExecutionEnvironment" eSuperTypes="#//Node">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CommunicationPath" eSuperTypes="#//Association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="In the metamodel, CommunicationPath is a subclass of Association."/>
+ </eAnnotations>
+ <eAnnotations source="duplicates">
+ <contents xsi:type="ecore:EOperation" name="association_ends" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The association ends of a CommunicationPath are typed by DeploymentTargets.&#xD;&#xA;result = self.endType->forAll (t | t.oclIsKindOf(DeploymentTarget))"/>
+ </eAnnotations>
+ <eAnnotations source="redefines" references="#//Association/association_ends"/>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </contents>
+ </eAnnotations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FinalState" eSuperTypes="#//State">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="no_outgoing_transitions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final state cannot have any outgoing transitions.&#xD;&#xA;self.outgoing->size() = 0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_regions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final state cannot have regions.&#xD;&#xA;self.region->size() = 0"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="cannot_reference_submachine" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final state cannot reference a submachine.&#xD;&#xA;self.submachine->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_entry_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final state has no entry behavior.&#xD;&#xA;self.entry->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_exitbehavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final state has no exit behavior.&#xD;&#xA;self.exit->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="no_state_behavior" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A final state has no state (doActivity) behavior.&#xD;&#xA;self.doActivity->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TimeEvent" eSuperTypes="#//Event">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;Extends TimeEvent to be defined relative to entering the current state of the executing state machine."/>
+ </eAnnotations>
+ <eOperations name="starting_time" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The starting time for a relative time event may only be omitted for a time event that is the trigger of a state machine.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRelative" ordered="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies whether it is relative or absolute time."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="when" ordered="false" lowerBound="1"
+ eType="#//ValueSpecification" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Specifies the corresponding time deadline."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ProtocolTransition" eSuperTypes="#//Transition">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;&#xA;&#xA;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).&#xA;&#xA;"/>
+ </eAnnotations>
+ <eOperations name="belongs_to_psm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A protocol transition always belongs to a protocol state machine.&#xD;&#xA;container.belongsToPSM()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="associated_actions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="A protocol transition never has associated actions.&#xD;&#xA;effect->isEmpty()"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="refers_to_operation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xD;&#xA;true"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="belongsToPSM" ordered="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation belongsToPSM () checks if the region belongs to a protocol state machine&#xD;&#xA;result = if not stateMachine->isEmpty() then&#xA;oclIsTypeOf(ProtocolStateMachine)&#xA;else if not state->isEmpty() then&#xA;state.container.belongsToPSM ()&#xA;else false"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="postCondition" ordered="false"
+ eType="#//Constraint" containment="true" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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.&#xA;&#xA;"/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Element/ownedElement"/>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referred" ordered="false"
+ upperBound="-1" eType="#//Operation" changeable="false" volatile="true" transient="true"
+ derived="true">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="This association refers to the associated operation. It is derived from the operation of the call trigger when applicable."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preCondition" ordered="false"
+ eType="#//Constraint" resolveProxies="false">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eAnnotations source="subsets" references="#//Transition/guard"/>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AssociationClass" eSuperTypes="#//Class #//Association">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="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."/>
+ </eAnnotations>
+ <eOperations name="cannot_be_defined" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="An AssociationClass cannot be defined between itself and something else.&#xD;&#xA;self.endType->excludes(self) and self.endType>collect(et|et.allparents()->excludes(self))"/>
+ </eAnnotations>
+ <eParameters name="diagnostics" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDiagnosticChain"/>
+ <eParameters name="context" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EMap"/>
+ </eOperations>
+ <eOperations name="allConnections" ordered="false" lowerBound="2" upperBound="-1"
+ eType="#//Property">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="The operation allConnections results in the set of all AssociationEnds of the Association.&#xD;&#xA;result = memberEnd->union ( self.parents ()->collect (p | p.allConnections () )"/>
+ </eAnnotations>
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="spec"/>
+ </eAnnotations>
+ </eOperations>
+ </eClassifiers>
+</ecore:EPackage>

Back to the top